مع ظهور أجهزة الكمبيوتر والإنترنت ، يتم التقاط الكثير من المعلومات رقميًا. توصلت شركات مختلفة إلى حلول لجعل هذه العملية أكثر كفاءة. أحد هذه الحلول هو نماذج PDF القابلة للتعبئة. تعد نماذج PDF خيارًا شائعًا يجعل من السهل التقاط المعلومات رقميًا. يمكن استخدام نماذج PDF لالتقاط بيانات المسح أو كنماذج قبول. في ضوء ذلك ، ستعلمك هذه المقالة كيفية إنشاء ، وملء ، وتعديل نماذج PDF القابلة للتعبئة باستخدام C ++.
- واجهة برمجة تطبيقات C ++ لإنشاء نماذج PDF القابلة للتعبئة وتعبئتها وتحريرها
- إنشاء نماذج PDF قابلة للتعبئة باستخدام C ++
- املأ نموذجًا موجودًا في ملف PDF باستخدام C ++
- قم بتعديل قيمة حقل النموذج في نموذج PDF باستخدام C ++
- احذف حقل نموذج من نموذج PDF موجود باستخدام C ++
واجهة برمجة تطبيقات C ++ لإنشاء نماذج PDF القابلة للتعبئة وتعبئتها وتحريرها
Aspose.PDF for C ++ هي مكتبة C ++ تسمح لك بإنشاء ، قراءة وتحديث مستندات PDF. علاوة على ذلك ، تدعم واجهة برمجة التطبيقات إنشاء ، وملء ، وتحرير نماذج PDF القابلة للتعبئة. يمكنك إما تثبيت API من خلال NuGet أو تنزيلها مباشرة من قسم التنزيلات.
PM> Install-Package Aspose.PDF.Cpp
إنشاء نماذج PDF قابلة للتعبئة باستخدام C ++
في هذا المثال ، سننشئ نموذجًا من البداية يحتوي على مربعي نص وزر اختيار واحد. ومع ذلك ، يكون أحد مربعات النص متعدد الأسطر والآخر يتكون من سطر واحد. فيما يلي خطوات إنشاء نموذج في ملف PDF.
- قم بإنشاء مثيل لفئة Document.
- أضف صفحة فارغة إلى المستند.
- قم بإنشاء مثيل لفئة TextBoxField.
- عيّن خصائص TextBoxField مثل FontSize ، Color ، إلخ.
- قم بإنشاء مثيل لـ TextBoxField الثاني وقم بتعيين خصائصه.
- أضف مربعي النص إلى النموذج باستخدام Document-> getForm() -> Add (System :: SharedPtr الحقل ، int32t pageNumber) طريقة.
- قم بإنشاء جدول.
- قم بإنشاء مثيل للفئة RadioButtonField.
- أضف RadioButton إلى النموذج باستخدام Document-> getForm() -> Add (System :: SharedPtr الحقل ، int32t pageNumber) طريقة.
- قم بإنشاء مثيلين من فئة RadioButtonOptionField لتمثيل خيارات زر الاختيار.
- اضبط OptionName و العرض و الارتفاع وأضف الخيارات إلى زر الاختيار باستخدام RadioButtonField-> Add (System :: SharedPtr & عنصر جديد) طريقة.
- أضف خيارات زر الاختيار إلى خلايا الجدول باستخدام Cell-> getParagraphs() -> Add (System :: SharedPtr فقرة) طريقة.
- احفظ ملف الإخراج باستخدام طريقة Document-> Save (System :: String outputFileName).
يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء نموذج في ملف PDF باستخدام C ++.
// قم بإنشاء مثيل لفئة المستند
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 باستخدام C ++
في هذا المثال ، سنستخدم الملف الذي تم إنشاؤه في المثال السابق. سنقوم بتحميل الملف باستخدام فئة Document ونملأ الحقول الخاصة به. فيما يلي خطوات ملء الحقول الخاصة بنموذج PDF موجود.
- قم بتحميل ملف PDF باستخدام فئة المستند.
- استرجع حقول النص باستخدام الطريقة Document-> getForm() -> idxget (System :: String name).
- قم بتعيين قيم كل من حقول النص باستخدام الأسلوب TextBoxField-> setValue (قيمة النظام :: String).
- استرجع RadioButtonField باستخدام طريقة Document-> getForm() -> idxget (System :: String name).
- اضبط قيمة RadioButtonField باستخدام طريقة RadioButtonField-> setSelected (قيمة int32t).
- احفظ ملف الإخراج باستخدام طريقة Document-> Save (System :: String outputFileName).
يوضح نموذج التعليمات البرمجية التالي كيفية ملء نموذج موجود في ملف 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 باستخدام C ++
باستخدام Aspose.PDF لـ C ++ ، يمكننا أيضًا تعديل قيمة حقل مملوء مسبقًا. في هذا المثال ، سوف نستخدم الملف الذي تم إنشاؤه في المثال السابق ونقوم بتعديل قيمة أول TextBoxField. لتحقيق ذلك ، يرجى اتباع الخطوات الواردة أدناه.
- قم بتحميل ملف PDF باستخدام فئة Document.
- استرجع TextBoxField باستخدام طريقة Document-> getForm() -> idxget (System :: String name).
- قم بتحديث قيمة TextBoxField باستخدام طريقة TextBoxField-> setValue (System :: String value).
- احفظ ملف الإخراج باستخدام طريقة Document-> Save (System :: String outputFileName).
يوضح نموذج التعليمات البرمجية التالي كيفية تعديل قيمة حقل في نموذج 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 موجود باستخدام C ++
تتيح لك واجهة برمجة التطبيقات أيضًا حذف حقول النموذج من نماذج PDF الموجودة. فيما يلي خطوات حذف حقل نموذج من نموذج PDF.
- قم بتحميل ملف PDF باستخدام فئة المستند.
- احذف الحقل باستخدام طريقة Document-> getForm() -> Delete (System :: String fieldName).
- احفظ ملف الإخراج باستخدام طريقة Document-> Save (System :: String outputFileName).
يوضح نموذج التعليمات البرمجية التالي كيفية حذف حقل نموذج من نموذج 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 باستخدام C ++. بالإضافة إلى ذلك ، تعلمت كيفية ملء الحقول الموجودة وتعديلها في نماذج PDF. لقد رأيت أيضًا كيفية إزالة حقل نموذج من نموذج PDF باستخدام Aspose.PDF لـ C ++ API. توفر واجهة برمجة التطبيقات مجموعة من الميزات الإضافية للعمل مع ملفات PDF التي يمكنك استكشافها بالتفصيل من خلال الاطلاع على الوثائق الرسمية. إذا كانت لديك أسئلة بخصوص أي جانب من جوانب واجهة برمجة التطبيقات ، فلا تتردد في الاتصال بنا على منتدى الدعم المجاني.