Buat, Isi, atau Edit Formulir PDF yang Dapat Diisi dengan C++

Dengan munculnya komputer dan internet, banyak informasi ditangkap secara digital. Perusahaan yang berbeda datang dengan solusi untuk membuat proses ini lebih efisien. Salah satu solusinya adalah formulir PDF yang bisa diisi. Formulir PDF adalah pilihan populer yang memudahkan untuk menangkap informasi secara digital. Formulir PDF dapat digunakan untuk mengambil data survei atau sebagai formulir penerimaan. Sehubungan dengan hal ini, artikel ini akan mengajarkan Anda cara membuat, mengisi, dan mengedit formulir PDF yang dapat diisi menggunakan C++.

C++ API untuk Membuat, Mengisi, dan Mengedit Formulir PDF yang Dapat Diisi

Aspose.PDF for C++ adalah pustaka C++ yang memungkinkan Anda membuat, membaca, dan memperbarui dokumen PDF. Selain itu, API mendukung pembuatan, pengisian, dan pengeditan formulir PDF yang dapat diisi. Anda dapat menginstal API melalui NuGet atau mengunduhnya langsung dari bagian unduhan.

PM> Install-Package Aspose.PDF.Cpp

Buat Formulir PDF yang Dapat Diisi menggunakan C++

Dalam contoh ini, kita akan membuat formulir dari awal dengan dua kotak teks dan satu tombol radio. Namun, satu kotak teks multi-baris, dan yang lainnya satu baris. Berikut ini adalah langkah-langkah untuk membuat formulir dalam file PDF.

Kode contoh berikut menunjukkan cara membuat formulir dalam file PDF menggunakan C++.

// Buat instance dari kelas Document
auto pdfDocument = MakeObject<Document>();

// Tambahkan halaman kosong ke dokumen
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();

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

// Buat 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);

// Buat 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()));

// Tambahkan TextBoxField ke formulir
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);

// Buat tabel
System::SharedPtr<Table> table = MakeObject<Table>();

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

// Tambahkan tabel ke halaman
page->get_Paragraphs()->Add(table);

// Buat Baris dan Kolom
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();

// Buat RadioButtonField
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);

rf->set_PartialName(u"radio");

// Tambahkan RadioButtonField ke formulir
pdfDocument->get_Form()->Add(rf, 1);

// Buat opsi tombol radio
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);

// Tambahkan opsi ke 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);

// Tambahkan opsi ke sel tabel
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);


// Simpan file keluaran
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
Gambar file PDF yang dihasilkan oleh kode sampel

Gambar file PDF yang dihasilkan oleh kode sampel

Isi Formulir yang Ada di File PDF menggunakan C++

Dalam contoh ini, kami akan menggunakan file yang dihasilkan dalam contoh sebelumnya. Kami akan memuat file menggunakan kelas Document dan mengisi kolomnya. Berikut adalah langkah-langkah mengisi kolom form PDF yang sudah ada.

Kode contoh berikut menunjukkan cara mengisi formulir yang ada di file PDF menggunakan C++.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");

// Ambil bidang kotak teks
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"));

// Tetapkan nilai bidang kotak teks
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.");

// Ambil bidang tombol radio
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));

// Tetapkan nilai bidang tombol radio
radioField->set_Selected(1);

// Simpan file keluaran
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
Gambar file PDF yang dihasilkan oleh kode sampel

Gambar file PDF yang dihasilkan oleh kode sampel

Ubah Nilai Bidang Formulir dalam Formulir PDF menggunakan C++

Dengan Aspose.PDF for C++, kami juga dapat mengubah nilai bidang yang diisi sebelumnya. Dalam contoh ini, kita akan menggunakan file yang dihasilkan dalam contoh sebelumnya dan mengubah nilai TextBoxField pertama. Untuk mencapai ini, silakan ikuti langkah-langkah yang diberikan di bawah ini.

Kode contoh berikut menunjukkan cara mengubah nilai bidang dalam formulir PDF menggunakan C++.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");

// Ambil TextBoxField
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));

// Perbarui nilai TextBoxField
textBoxField->set_Value(u"Changed Value");

// Tandai TextBoxField sebagai readonly
textBoxField->set_ReadOnly(true);

// Simpan file keluaran
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
Gambar file PDF yang dihasilkan oleh kode sampel

Gambar file PDF yang dihasilkan oleh kode sampel

Hapus Bidang Formulir dari Formulir PDF yang Ada menggunakan C++

API juga memungkinkan Anda menghapus bidang formulir dari formulir PDF yang ada. Berikut ini adalah langkah-langkah untuk menghapus kolom formulir dari formulir PDF.

Kode contoh berikut menunjukkan cara menghapus kolom formulir dari formulir PDF yang sudah ada menggunakan C++.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");

// Hapus bidang
pdfDocument->get_Form()->Delete(u"nameBox1");

// Simpan file keluaran
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
Gambar file PDF yang dihasilkan oleh kode sampel

Gambar file PDF yang dihasilkan oleh kode sampel

Dapatkan Lisensi Gratis

Anda dapat mencoba API tanpa batasan evaluasi dengan meminta lisensi sementara gratis.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara membuat formulir dalam file PDF menggunakan C++. Selain itu, Anda telah mempelajari cara mengisi dan mengubah kolom yang ada di formulir PDF. Anda juga telah melihat cara menghapus bidang formulir dari formulir PDF menggunakan Aspose.PDF for C++ API. API menyediakan banyak fitur tambahan untuk bekerja dengan file PDF yang dapat Anda jelajahi secara mendetail melalui dokumentasi resmi. Jika Anda memiliki pertanyaan tentang aspek apa pun dari API, jangan ragu untuk menghubungi kami di forum dukungan gratis.

Lihat juga