ด้วยการกำเนิดของคอมพิวเตอร์และอินเทอร์เน็ต ข้อมูลจำนวนมากถูกบันทึกแบบดิจิทัล บริษัทต่างๆ ได้คิดค้นโซลูชันเพื่อทำให้กระบวนการนี้มีประสิทธิภาพมากขึ้น วิธีหนึ่งคือแบบฟอร์ม 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 โดยใช้คลาส Document
- ดึง TextBoxFields โดยใช้เมธอด Document->getForm()->idxget(System::String)
- ตั้งค่าของทั้ง TextBoxFields โดยใช้เมธอด TextBoxField->setValue(System::String value)
- ดึงข้อมูล RadioButtonField โดยใช้เมธอด Document->getForm()->idxget(System::String)
- ตั้งค่าของ 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 for C++ เรายังสามารถแก้ไขค่าของฟิลด์ที่กรอกไว้ก่อนหน้านี้ได้อีกด้วย ในตัวอย่างนี้ เราจะใช้ไฟล์ที่สร้างขึ้นในตัวอย่างก่อนหน้าและแก้ไขค่าของ TextBoxField แรก เพื่อให้บรรลุเป้าหมายนี้ โปรดปฏิบัติตามขั้นตอนด้านล่าง
- โหลดไฟล์ PDF โดยใช้คลาส Document
- ดึงข้อมูล TextBoxField โดยใช้เมธอด Document->getForm()->idxget(System::String)
- อัปเดตค่าของ 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
- ลบฟิลด์โดยใช้เมธอด 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 for C++ API API มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับไฟล์ PDF ซึ่งคุณสามารถสำรวจโดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ หากคุณมีคำถามเกี่ยวกับแง่มุมใดๆ ของ API โปรดติดต่อเราที่ ฟอรัมสนับสนุนฟรี