З появою комп’ютерів та Інтернету багато інформації фіксується в цифровому вигляді. Різні компанії придумали рішення, щоб зробити цей процес ефективнішим. Одним із таких рішень є заповнювані форми 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) поле, метод int32t pageNumber).
- Створіть таблицю.
- Створіть екземпляр класу RadioButtonField.
- Додайте RadioButton до форми за допомогою Document->getForm()->Add(System::SharedPtr) поле, метод 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 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 for 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++
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 за допомогою API Aspose.PDF for C++. API надає низку додаткових функцій для роботи з PDF-файлами, які ви можете детально вивчити, переглянувши офіційну документацію. Якщо у вас є запитання щодо будь-якого аспекту API, зв’яжіться з нами на нашому безкоштовному форумі підтримки.