ایجاد، پر کردن، یا ویرایش فرم های PDF قابل پر کردن با C++

با ظهور کامپیوتر و اینترنت، اطلاعات زیادی به صورت دیجیتالی ثبت می شود. شرکت های مختلف راه حل هایی برای کارآمدتر کردن این فرآیند ارائه کردند. یکی از این راه حل ها، فرم های PDF قابل پر کردن است. فرم‌های پی‌دی‌اف یک انتخاب محبوب هستند که گرفتن اطلاعات دیجیتالی را آسان می‌کنند. فرم های PDF ممکن است برای گرفتن داده های نظرسنجی یا به عنوان فرم های پذیرش استفاده شود. با توجه به این موضوع، این مقاله به شما نحوه ایجاد، پر کردن و ویرایش فرم‌های PDF قابل پرکردن را با استفاده از C++ آموزش می‌دهد.

C++ API برای ایجاد، پر کردن و ویرایش فرم‌های PDF قابل پر کردن

Aspose.PDF for C++ یک کتابخانه C++ است که به شما امکان ایجاد، خواندن و به روز رسانی اسناد PDF را می دهد. علاوه بر این، API از ایجاد، پر کردن و ویرایش فرم های PDF قابل پر کردن پشتیبانی می کند. می‌توانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش دانلودها دانلود کنید.

PM> Install-Package Aspose.PDF.Cpp

فرم های PDF قابل پر کردن را با استفاده از C++ ایجاد کنید

در این مثال، یک فرم از ابتدا با دو جعبه متن و یک دکمه رادیویی ایجاد می کنیم. با این حال، یک جعبه متن چند خطی است و دیگری تک خطی است. در زیر مراحل ایجاد فرم در یک فایل PDF آمده است.

کد نمونه زیر نحوه ایجاد فرم را در یک فایل PDF با استفاده از C++ نشان می دهد.

// یک نمونه از کلاس Document ایجاد کنید
auto pdfDocument = MakeObject<Document>();

// یک صفحه خالی به سند اضافه کنید
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();

System::SharedPtr<Aspose::Pdf::Rectangle> rectangle1 = MakeObject<Aspose::Pdf::Rectangle>(275, 740, 440, 770);

// یک TextBoxField ایجاد کنید
System::SharedPtr<TextBoxField> nameBox = MakeObject<TextBoxField>(pdfDocument, rectangle1);

nameBox->set_PartialName(u"nameBox1");
nameBox->get_DefaultAppearance()->set_FontSize(10);
nameBox->set_Multiline(true);

System::SharedPtr<Border> nameBorder = MakeObject<Border>(nameBox);

nameBorder->set_Width(1);
nameBox->set_Border(nameBorder);
nameBox->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
nameBox->set_Color(Aspose::Pdf::Color::FromRgb(System::Drawing::Color::get_Red()));

System::SharedPtr<Aspose::Pdf::Rectangle> rectangle2 = MakeObject<Aspose::Pdf::Rectangle>(275, 718, 440, 738);

// یک TextBoxField ایجاد کنید
System::SharedPtr<TextBoxField> mrnBox = MakeObject<TextBoxField>(pdfDocument, rectangle2);

mrnBox->set_PartialName(u"Box1");
mrnBox->get_DefaultAppearance()->set_FontSize(10);

System::SharedPtr<Border> mrnBorder = MakeObject<Border>(mrnBox);

mrnBox->set_Width(165);
mrnBox->set_Border(mrnBorder);
mrnBox->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
mrnBox->set_Color(Aspose::Pdf::Color::FromRgb(System::Drawing::Color::get_Red()));

// TextBoxField را به فرم اضافه کنید
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);

// یک جدول ایجاد کنید
System::SharedPtr<Table> table = MakeObject<Table>();

table->set_Left(200);
table->set_Top(300);
table->set_ColumnWidths(u"120");

// جدول را به صفحه اضافه کنید
page->get_Paragraphs()->Add(table);

// سطر و ستون ایجاد کنید
System::SharedPtr<Row> r1 = table->get_Rows()->Add();
System::SharedPtr<Row> r2 = table->get_Rows()->Add();
System::SharedPtr<Cell> c1 = r1->get_Cells()->Add();
System::SharedPtr<Cell> c2 = r2->get_Cells()->Add();

// یک RadioButtonField ایجاد کنید
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);

rf->set_PartialName(u"radio");

// RadioButtonField را به فرم اضافه کنید
pdfDocument->get_Form()->Add(rf, 1);

// گزینه های دکمه رادیویی را ایجاد کنید
System::SharedPtr<RadioButtonOptionField> opt1 = MakeObject<RadioButtonOptionField>();
System::SharedPtr<RadioButtonOptionField> opt2 = MakeObject<RadioButtonOptionField>();

opt1->set_OptionName(u"Yes");
opt2->set_OptionName(u"No");

opt1->set_Width(15);
opt1->set_Height(15);

opt2->set_Width(15);
opt2->set_Height(15);

// گزینه ها را به RadioButtonField اضافه کنید
rf->Add(opt1);
rf->Add(opt2);

System::SharedPtr<Border> opt1Border = MakeObject<Border>(opt1);

opt1->set_Border(opt1Border);
opt1->get_Border()->set_Width(1);
opt1->get_Border()->set_Style(BorderStyle::Solid);
opt1->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt1->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());

System::SharedPtr<TextFragment> opt1Fragment = MakeObject<TextFragment>(u"Yes");

opt1->set_Caption(opt1Fragment);

System::SharedPtr<Border> opt2Border = MakeObject<Border>(opt2);

opt2->set_Border(opt2Border);
opt2->get_Border()->set_Width(1);
opt2->get_Border()->set_Style(BorderStyle::Solid);
opt2->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt2->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());

System::SharedPtr<TextFragment> opt2Fragment = MakeObject<TextFragment>(u"No");

opt2->set_Caption(opt2Fragment);

// گزینه ها را به سلول های جدول اضافه کنید
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);


// فایل خروجی را ذخیره کنید
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
تصویر فایل PDF تولید شده توسط کد نمونه

تصویر فایل PDF تولید شده توسط کد نمونه

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

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

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

// فایل PDF را بارگیری کنید
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");

// فیلدهای جعبه متن را بازیابی کنید
System::SharedPtr<TextBoxField> textBoxField1 = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
System::SharedPtr<TextBoxField> textBoxField2 = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"Box1"));

// مقدار فیلدهای جعبه متن را تنظیم کنید
textBoxField1->set_Value(u"A quick brown fox jumped over the lazy dog.");
textBoxField2->set_Value(u"A quick brown fox jumped over the lazy dog.");

// فیلد دکمه رادیویی را بازیابی کنید
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));

// مقدار فیلد دکمه رادیویی را تنظیم کنید
radioField->set_Selected(1);

// فایل خروجی را ذخیره کنید
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
تصویر فایل PDF تولید شده توسط کد نمونه

تصویر فایل PDF تولید شده توسط کد نمونه

مقدار یک فیلد فرم را در یک فرم PDF با استفاده از C++ تغییر دهید

با Aspose.PDF برای C++، می‌توانیم مقدار فیلد پر شده قبلی را نیز تغییر دهیم. در این مثال، از فایل تولید شده در مثال قبلی استفاده می کنیم و مقدار TextBoxField اول را تغییر می دهیم. برای رسیدن به این هدف، لطفا مراحل زیر را دنبال کنید.

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

// فایل PDF را بارگیری کنید
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");

// TextBoxField را بازیابی کنید
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));

// مقدار TextBoxField را به روز کنید
textBoxField->set_Value(u"Changed Value");

// TextBoxField را به عنوان فقط خواندنی علامت گذاری کنید
textBoxField->set_ReadOnly(true);

// فایل خروجی را ذخیره کنید
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
تصویر فایل PDF تولید شده توسط کد نمونه

تصویر فایل PDF تولید شده توسط کد نمونه

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

API همچنین به شما امکان می دهد فیلدهای فرم را از فرم های PDF موجود حذف کنید. مراحل زیر برای حذف فیلد فرم از فرم PDF آورده شده است.

کد نمونه زیر نحوه حذف یک فیلد فرم را از فرم PDF موجود با استفاده از C++ نشان می دهد.

// فایل PDF را بارگیری کنید
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");

// فیلد را حذف کنید
pdfDocument->get_Form()->Delete(u"nameBox1");

// فایل خروجی را ذخیره کنید
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
تصویر فایل PDF تولید شده توسط کد نمونه

تصویر فایل PDF تولید شده توسط کد نمونه

مجوز رایگان دریافت کنید

با درخواست [مجوز موقت رایگان] می‌توانید API را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله نحوه ایجاد فرم در فایل های PDF با استفاده از C++ را یاد گرفتید. علاوه بر این، نحوه پر کردن و اصلاح فیلدهای موجود در فرم های PDF را آموخته اید. همچنین نحوه حذف یک فیلد فرم از فرم PDF را با استفاده از Aspose.PDF برای C++ API مشاهده کرده اید. API مجموعه‌ای از ویژگی‌های اضافی را برای کار با فایل‌های PDF فراهم می‌کند که می‌توانید با مراجعه به اسناد رسمی جزئیات را بررسی کنید. اگر در مورد هر یک از جنبه‌های API سؤالی دارید، لطفاً در تالار گفتمان پشتیبانی رایگان ما با ما تماس بگیرید.

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