پر کردن فرم PDF

فرم های PDF اغلب برای جمع آوری داده ها و اطلاعات استفاده می شود. به عنوان مثال، معمولاً پرسشنامه ها برای جمع آوری پاسخ ها برای اهداف نظرسنجی طراحی می شوند. شما می‌توانید فرم‌های پی‌دی‌اف را در سی شارپ به صورت برنامه‌نویسی پر، ویرایش، تغییر دهید، زیرا در دنیای دیجیتال امروزی با فرم‌های پی‌دی‌اف قابل پرکردن مختلف تعامل داریم. با توجه به گستره وسیع و اهمیت فرم‌های PDF، API Aspose.PDF for .NET از بسیاری از ویژگی‌ها برای کار با فرم‌های PDF پشتیبانی می‌کند. اجازه دهید موارد استفاده زیر را با استفاده از زبان سی شارپ در این مقاله بررسی کنیم:

فرم های PDF قابل پر کردن را با استفاده از سی شارپ به صورت برنامه ریزی شده ایجاد کنید

می توانید با استفاده از Aspose.PDF برای NET API یک فرم PDF قابل پر کردن از ابتدا ایجاد کنید. در اینجا مثال اصلی اضافه کردن دو نمونه TextBoxField و RadioButton را در نظر خواهیم گرفت. با این حال، یکی از TextBoxField تک خطی است در حالی که دیگری چند خطی است. در زیر مراحل ایجاد فرم در سند PDF آمده است:

  1. یک نمونه از کلاس Document ایجاد کنید
  2. یک صفحه خالی در سند PDF اضافه کنید
  3. فیلد TextBox را به فرم اضافه کنید
  4. ویژگی های مختلف فیلدها از جمله Font، Border و غیره را تنظیم کنید.
  5. دکمه رادیویی را در فرم اضافه کنید
  6. سند PDF را ذخیره کنید

قطعه کد زیر نحوه ایجاد فرم در PDF با استفاده از C# را نشان می دهد:

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// فیلدهای فرم را به صفحه اول سند PDF اضافه کنید            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//دکمه های رادیویی را در مختصات موقعیت خاص در PDF اضافه کنید
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//موقعیت را در اینجا تنظیم کنید
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

تصویر زیر سند PDF خروجی حاوی فیلدهای فرم را همانطور که در قطعه کد بالا مشخص شده است نشان می دهد:

فرم PDF

پر کردن، اصلاح یا حذف فیلدهای فرم در PDF موجود با استفاده از C#

همانطور که ایجاد یک فرم در سند PDF با استفاده از C# را بررسی کردیم، Aspose.PDF برای .NET API از کار با فرم های PDF موجود نیز پشتیبانی می کند. اجازه دهید در مورد ویژگی های زیر از API صحبت کنیم.

i) یک فیلد فرم را در فایل PDF موجود با استفاده از برنامه C# پر کنید

برای پر کردن فرم های پی دی اف، سند پی دی اف را که در مثال بالا ایجاد شده است ادامه می دهیم. مراحل زیر برای پر کردن فیلدها در یک سند PDF موجود است:

  1. سند PDF منبع را بارگیری کنید
  2. Textbox فیلدها و مقادیر پر را دریافت کنید
  3. فیلد دکمه رادیویی را دریافت کنید و یک گزینه از گروه را انتخاب کنید
  4. فرم PDF پر شده را ذخیره کنید

قطعه کد زیر این مراحل را دنبال می کند و نحوه پر کردن فیلدهای یک سند PDF را با استفاده از C# توضیح می دهد:

// سند را باز کنید
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// زمینه ها را دریافت کنید
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// مقادیر فیلدهای فرم را پر کنید
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// دریافت فیلد دکمه رادیویی
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// شاخص دکمه رادیویی را از گروه مشخص کنید
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// سند به روز شده را ذخیره کنید
pdfDocument.Save(dataDir);

تصویر زیر فیلدهای فرم پر شده فرم PDF را با استفاده از C# نشان می دهد:

PDF قابل پر کردن

ii) یک فیلد فرم را در سند PDF با استفاده از C# تغییر دهید

گاهی اوقات ممکن است لازم باشد مقدار را در هر قسمت از یک فرم PDF تغییر دهید. تغییر یک مقدار در یک فیلد فرم یک مورد استفاده اساسی است که با مراحل زیر قابل دستیابی است:

  1. فرم PDF را بارگیری کنید
  2. یک فیلد خاص را با استفاده از نام آن دریافت کنید
  3. مقدار فیلد را تغییر دهید
  4. سند PDF به روز شده را ذخیره کنید

قطعه کد زیر نحوه تغییر یک مقدار را در فیلد فرم سند PDF نشان می دهد:

// سند را باز کنید
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// یک میدان بگیرید
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// مقدار فیلد را تغییر دهید
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// سند به روز شده را ذخیره کنید
pdfDocument.Save(dataDir);

در اینجا قابل ذکر است که شما نه تنها می توانید مقدار فرم را تغییر دهید، بلکه ویژگی های دیگر را نیز می توانید به روز کنید. به عنوان مثال، فیلد به عنوان Read Only در قطعه کد بالا علامت گذاری شده است.

iii) یک فیلد فرم را در فایل PDF موجود با استفاده از C# حذف کنید

ما قبلاً با افزودن و پر کردن فیلدهای فرم PDF آشنا شده ایم. حالا اجازه دهید حذف یک فیلد فرم را بررسی کنیم. شما باید مراحل زیر را دنبال کنید:

  1. سند PDF را بارگیری کنید
  2. روش Delete را با نام فیلد فرم فراخوانی کنید
  3. ذخیره سند PDF

قطعه کد زیر نحوه حذف فیلد فرم را از فایل PDF با استفاده از C# نشان می دهد:

// سند را باز کنید
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// یک فیلد خاص را با نام حذف کنید
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// سند اصلاح شده را ذخیره کنید
pdfDocument.Save(dataDir);

حفظ حقوق توسعه یافته فرم های PDF با استفاده از C#

یک فرم PDF ممکن است دارای حقوق گسترده‌ای باشد که به آن ویژگی‌های توسعه‌یافته نیز گفته می‌شود، که می‌خواهید در طول دستکاری فرم حفظ کنید. با دنبال کردن مراحل زیر باید آن را به صورت تدریجی ذخیره کنید:

  • سند PDF را در جریان بارگیری کنید
  • با فرم کار کنید
  • فایل را بدون هیچ پارامتری ذخیره کنید

قطعه کد C# زیر نحوه حفظ حقوق توسعه یافته فرم PDF را توضیح می دهد:

// فرم PDF منبع را با FileAccess Read and Write بخوانید.
// ما به مجوز ReadWrite نیاز داریم زیرا پس از اصلاح،
// ما باید محتویات به روز شده را در همان سند/فایل ذخیره کنیم.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// نمونه سند نمونه
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// مقادیر را از همه فیلدها دریافت کنید
foreach (Field formField in pdfDocument.Form)
{
    // اگر نام کامل فیلد حاوی A1 باشد، عملیات را انجام دهید
    if (formField.FullName.Contains("nameBox1"))
    {
        // قسمت فرم ارسال به عنوان TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // مقدار فیلد را تغییر دهید
        textBoxField.Value = "Preserve Extended Features";
    }
}
// سند به روز شده را در save FileStream ذخیره کنید
pdfDocument.Save();
// شی File Stream را ببندید
fs.Close();

استفاده از جاوا اسکریپت در فرم PDF با استفاده از سی شارپ

می توانید از جاوا اسکریپت در فیلدهای فرم PDF با Aspose.PDF برای NET API استفاده کنید. اجازه دهید برای رسیدن به این نیاز مراحل زیر را دنبال کنیم:

  1. نمونه ای از کلاس Document را راه اندازی کنید
  2. یک TextBoxField در صفحه اول در مختصات صفحه خاص اضافه کنید
  3. جاوا اسکریپت را تنظیم کنید
  4. اقدام سند را مشخص کنید
  5. سند PDF را ذخیره کنید

قطعه کد زیر نحوه افزودن جاوا اسکریپت را در قالب PDF با استفاده از C# نشان می دهد:

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = new Border();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// فیلد را به سند اضافه کنید
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

جاوا اسکریپت تاریخ و زمان فعلی سیستم را هنگامی که سند PDF باز می شود و آن مقدار در یک کادر متنی پر می شود، دریافت می کند.

نتیجه

در این مقاله با جنبه های مختلف کار با فرم در اسناد PDF آشنا شده ایم. ایجاد، پر کردن یا ویرایش فرم‌های PDF با Aspose.PDF برای NET API ساده است. API بسیاری از این ویژگی های هیجان انگیز را برای کار با فایل های مختلف ارائه می دهد. بازخورد یا نظرات خود را از طریق تالار گفتمان پشتیبانی رایگان با ما در میان بگذارید.

همچنین ببینید