עם הופעת המחשבים והאינטרנט, מידע רב נקלט בצורה דיגיטלית. חברות שונות המציאו פתרונות כדי להפוך את התהליך הזה ליעיל יותר. פתרון אחד כזה הוא טפסי PDF הניתנים למילוי. טפסי PDF הם בחירה פופולרית שמקלה על לכידת מידע דיגיטלית. ניתן להשתמש בטפסי PDF ללכידת נתוני סקר או כטופסי קבלה. לאור זאת, מאמר זה ילמד אותך כיצד ליצור, למלא ולערוך טפסי PDF הניתנים למילוי באמצעות C++.
- C++ API ליצירה, מילוי ועריכה של טפסי PDF הניתנים למילוי
- צור טפסי PDF הניתנים למילוי באמצעות C++
- מלא טופס קיים בקובץ PDF באמצעות C++
- שנה את הערך של שדה טופס בטופס PDF באמצעות C++
- מחק שדה טופס מטופס PDF קיים באמצעות C++
C++ API ליצירה, מילוי ועריכה של טפסי PDF הניתנים למילוי
Aspose.PDF for C++ היא ספריית C++ המאפשרת לך ליצור, לקרוא ולעדכן מסמכי PDF. יתר על כן, ה-API תומך ביצירה, מילוי ועריכה של טפסי PDF הניתנים למילוי. אתה יכול להתקין את ה-API דרך NuGet או להוריד אותו ישירות מהקטע הורדות.
PM> Install-Package Aspose.PDF.Cpp
צור טפסי PDF הניתנים למילוי באמצעות C++
בדוגמה זו, ניצור טופס מאפס עם שתי תיבות טקסט וכפתור בחירה אחד. עם זאת, תיבת טקסט אחת היא מרובת שורות, והשנייה היא שורה אחת. להלן השלבים ליצירת טופס בקובץ PDF.
- צור מופע של המחלקה Document.
- הוסף עמוד ריק למסמך.
- צור מופע של המחלקה TextBoxField.
- הגדר את המאפיינים של TextBoxField כמו FontSize, Color וכו'.
- צור מופע של TextBoxField השני והגדר את המאפיינים שלו.
- הוסף את שתי תיבות הטקסט לטופס באמצעות Document->getForm()->Add(System::SharedPtr field, int32t pageNumber) שיטה.
- צור טבלה.
- צור מופע של המחלקה RadioButtonField.
- הוסף את ה-RadioButton לטופס באמצעות Document->getForm()->Add(System::SharedPtr field, int32t pageNumber) שיטה.
- צור שני מופעים של המחלקה RadioButtonOptionField כדי לייצג את האפשרויות של לחצן הבחירה.
- הגדר את OptionName, Width ו-Height והוסף את האפשרויות ללחצן הבחירה באמצעות RadioButtonField->Add(System::SharedPtr const & newItem) שיטה.
- הוסף את האפשרויות של לחצן הבחירה לתאי הטבלה באמצעות Cell->getParagraphs()->Add(System::SharedPtr פסקה) שיטה.
- שמור את קובץ הפלט באמצעות השיטה Document->Save(System::String outputFileName).
הקוד לדוגמה הבא מראה כיצד ליצור טופס בקובץ 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 באמצעות C++
בדוגמה זו, נשתמש בקובץ שנוצר בדוגמה הקודמת. נטען את הקובץ באמצעות המחלקה Document ונמלא את השדות שלו. להלן השלבים למילוי השדות של טופס PDF קיים.
- טען את קובץ ה-PDF באמצעות המחלקה מסמך.
- אחזר את TextBoxFields באמצעות השיטה Document->getForm()->idxget(System::String name).
- הגדר את הערכים של שני ה-TextBoxFields באמצעות השיטה TextBoxField->setValue(System::String value).
- אחזר את RadioButtonField באמצעות השיטה Document->getForm()->idxget(System::String name).
- הגדר את הערך של RadioButtonField באמצעות השיטה RadioButtonField->setSelected(int32t value).
- שמור את קובץ הפלט באמצעות השיטה 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 באמצעות המחלקה מסמך.
- אחזר את 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++
ה-API גם מאפשר לך למחוק שדות טפסים מטפסי 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");
קבל רישיון חינם
אתה יכול לנסות את ה-API ללא מגבלות הערכה על ידי בקשת רישיון זמני ללא תשלום.
סיכום
במאמר זה, למדת כיצד ליצור טפסים בקבצי PDF באמצעות C++. בנוסף, למדת כיצד למלא ולשנות שדות קיימים בטפסי PDF. ראית גם כיצד להסיר שדה טופס מטופס PDF באמצעות Aspose.PDF עבור C++ API. ה-API מספק חבורה של תכונות נוספות לעבודה עם קובצי PDF שתוכלו לחקור בפירוט על ידי מעבר על התיעוד הרשמי. אם יש לך שאלות לגבי היבט כלשהו של ה-API, אל תהסס לפנות אלינו ב[פורום התמיכה החינמית] שלנו41.