Buat AcroForms menggunakan C++
Tambahkan Bidang Formulir dalam Dokumen PDF
Kelas Document menyediakan koleksi bernama Form yang membantu mengelola bidang formulir dalam dokumen PDF.
Untuk menambahkan bidang formulir:
- Buat bidang formulir yang ingin Anda tambahkan.
- Panggil metode tambah koleksi Form.
Contoh ini menunjukkan cara menambahkan TextBoxField. Anda dapat menambahkan bidang formulir apa pun menggunakan pendekatan yang sama:
- Pertama, buat objek bidang dan atur propertinya.
- Kemudian, tambahkan bidang ke koleksi Form.
Menambahkan TextBoxField
Bidang teks adalah elemen formulir yang memungkinkan penerima memasukkan teks ke dalam formulir Anda. Ini akan digunakan kapan saja Anda ingin memberikan kebebasan kepada pengguna untuk mengetik apa yang mereka inginkan.
Cuplikan kode berikut menunjukkan cara menambahkan TextBoxField ke dokumen PDF.
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Forms;
using namespace Aspose::Pdf::Annotations;
void AddingTextBoxField()
{
String _dataDir("C:\\Samples\\");
// Buka dokumen
auto document = MakeObject<Document>(_dataDir + u"TextField.pdf");
// Buat sebuah field
auto textBoxField = MakeObject<TextBoxField>(document->get_Pages()->idx_get(1), MakeObject<Aspose::Pdf::Rectangle>(100, 200, 300, 300));
textBoxField->set_PartialName (u"textbox1");
textBoxField->set_Value (u"Text Box");
// TextBoxField.Border = new Border(
auto border = MakeObject<Aspose::Pdf::Annotations::Border>(textBoxField);
border->set_Width(5);
border->set_Dash (MakeObject<Aspose::Pdf::Annotations::Dash>(1, 1));
textBoxField->set_Border(border);
textBoxField->set_Color(Aspose::Pdf::Color::get_Green());
// Tambahkan field ke dokumen
document->get_Form()->Add(textBoxField, 1);
// Simpan PDF yang telah dimodifikasi
document->Save(_dataDir + u"TextBox_out.pdf");
}
Menambahkan RadioButtonField
RadioButton paling sering digunakan untuk pertanyaan pilihan ganda, dalam skenario di mana hanya satu jawaban yang dapat dipilih.
Cuplikan kode berikut menunjukkan cara menambahkan RadioButtonField dalam dokumen PDF.
void AddingRadioButtonField()
{
String _dataDir("C:\\Samples\\");
// Buka dokumen
auto document = MakeObject<Document>();
// Tambahkan halaman ke file PDF
document->get_Pages()->Add();
// Instansiasi objek RadioButtonField dengan nomor halaman sebagai argumen
auto radio = MakeObject<RadioButtonField>(document->get_Pages()->idx_get(1));
// Tambahkan opsi radio button pertama dan juga tentukan asalnya menggunakan objek Rectangle
radio->AddOption(u"Option 1", MakeObject<Rectangle>(0, 0, 20, 20));
// Tambahkan opsi radio button kedua
radio->AddOption(u"Option 2", MakeObject<Rectangle>(20, 20, 40, 40));
// Tambahkan radio button ke objek form dari objek Document
document->get_Form()->Add(radio,1);
// Simpan file PDF
document->Save(_dataDir + u"RadioButton_out.pdf");
}
Potongan kode berikut menunjukkan langkah-langkah untuk menambahkan RadioButtonField dengan tiga opsi dan menempatkannya di dalam sel Tabel.
void AddRadioButtonFieldInsideTableCells()
{
String _dataDir("C:\\Samples\\");
auto document = MakeObject<Document>();
auto page = document->get_Pages()->Add();
auto table = MakeObject<Aspose::Pdf::Table>();
table->set_ColumnWidths(u"120 120 120");
page->get_Paragraphs()->Add(table);
auto r1 = table->get_Rows()->Add();
auto c1 = r1->get_Cells()->Add();
auto c2 = r1->get_Cells()->Add();
auto c3 = r1->get_Cells()->Add();
auto rf = MakeObject<RadioButtonField>(page);
rf->set_PartialName(u"radio");
document->get_Form()->Add(rf, 1);
auto opt1 = MakeObject<RadioButtonOptionField>();
auto opt2 = MakeObject<RadioButtonOptionField>();
auto opt3 = MakeObject<RadioButtonOptionField>();
opt1->set_OptionName(u"Item1");
opt2->set_OptionName(u"Item2");
opt3->set_OptionName(u"Item3");
opt1->set_Width (15);
opt1->set_Height(15);
opt2->set_Width (15);
opt2->set_Height(15);
opt3->set_Width (15);
opt3->set_Height(15);
rf->Add(opt1);
rf->Add(opt2);
rf->Add(opt3);
opt1->set_Border(MakeObject<Border>(opt1));
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());
opt1->set_Caption(MakeObject<Aspose::Pdf::Text::TextFragment>(u"Item1"));
opt2->set_Border(MakeObject<Border>(opt2));
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());
opt2->set_Caption(MakeObject<Aspose::Pdf::Text::TextFragment>(u"Item2"));
opt3->set_Border(MakeObject<Border>(opt3));
opt3->get_Border()->set_Width(1);
opt3->get_Border()->set_Style(BorderStyle::Solid);
opt3->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt3->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());
opt3->set_Caption(MakeObject<Aspose::Pdf::Text::TextFragment>(u"Item3"));
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);
c3->get_Paragraphs()->Add(opt3);
// Simpan file PDF
document->Save(_dataDir + u"RadioButtonWithOptions_out.pdf");
}
Menambahkan Keterangan ke RadioButtonField
Cuplikan kode berikut menunjukkan cara menambahkan keterangan yang akan dikaitkan dengan RadioButtonField:
void AddingCaptionToRadioButtonField()
{
String _dataDir("C:\\Samples\\");
auto document = MakeObject<Document>();
// Memuat formulir PDF sumber
auto form1 =
MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + u"RadioButtonField.pdf");
auto PDF_Template_PDF_HTML = MakeObject<Document>(_dataDir + u"RadioButtonField.pdf");
for(auto item : form1->get_FieldNames())
{
System::Console::WriteLine(item);
auto radioOptions = form1->GetButtonOptionValues(item);
if (item.Contains(u"radio1"))
{
auto field0 = System::DynamicCast<RadioButtonField>(PDF_Template_PDF_HTML->get_Form()->idx_get(item));
auto fieldoption = MakeObject<RadioButtonOptionField>();
fieldoption->set_OptionName (u"Yes");
fieldoption->set_PartialName (u"Yesname");
auto updatedFragment = MakeObject<Aspose::Pdf::Text::TextFragment>(u"test123");
updatedFragment->get_TextState()->set_Font (Aspose::Pdf::Text::FontRepository::FindFont(u"Arial"));
updatedFragment->get_TextState()->set_FontSize(10);
updatedFragment->get_TextState()->set_LineSpacing(6.32f);
// Membuat objek TextParagraph
auto par = MakeObject<Aspose::Pdf::Text::TextParagraph>();
// Mengatur posisi paragraf
par->set_Position(MakeObject<Aspose::Pdf::Text::Position>(field0->get_Rect()->get_LLX(), field0->get_Rect()->get_LLY() + updatedFragment->get_TextState()->get_FontSize()));
// Menentukan mode pembungkusan kata
par->get_FormattingOptions()->set_WrapMode(Aspose::Pdf::Text::TextFormattingOptions::WordWrapMode::ByWords);
// Menambahkan TextFragment baru ke paragraf
par->AppendLine(updatedFragment);
// Menambahkan TextParagraph menggunakan TextBuilder
auto textBuilder = MakeObject<Aspose::Pdf::Text::TextBuilder>(PDF_Template_PDF_HTML->get_Pages()->idx_get(1));
textBuilder->AppendParagraph(par);
field0->DeleteOption(u"item1");
}
}
PDF_Template_PDF_HTML->Save(_dataDir + u"RadioButtonField_out.pdf");
}
Menambahkan field ComboBox
Combo Box adalah field formulir yang akan menambahkan menu dropdown ke dokumen Anda.
Cuplikan kode berikut menunjukkan cara menambahkan field ComboBox dalam dokumen PDF.
void AddingComboBoxField()
{
String _dataDir("C:\\Samples\\");
// Buat objek Dokumen
auto document = MakeObject<Document>();
// Tambahkan halaman ke objek dokumen
document->get_Pages()->Add();
// Memperkenalkan objek ComboBox Field
auto combo = MakeObject<ComboBoxField>(document->get_Pages()->idx_get(1),
MakeObject<Rectangle>(100, 600, 150, 616));
// Tambahkan opsi ke ComboBox
combo->AddOption(u"Red");
combo->AddOption(u"Yellow");
combo->AddOption(u"Green");
combo->AddOption(u"Blue");
// Tambahkan objek combo box ke koleksi field formulir dari objek dokumen
document->get_Form()->Add(combo);
// Simpan dokumen PDF
document->Save(_dataDir + u"ComboBox_out.pdf");
}
Menambahkan Tooltip ke Formulir
The Document class menyediakan koleksi bernama Form yang mengelola bidang formulir dalam dokumen PDF. Untuk menambahkan tooltip ke bidang formulir, gunakan AlternateName dari kelas Field. Adobe Acrobat menggunakan ’nama alternatif’ sebagai tooltip bidang.
Cuplikan kode berikut menunjukkan cara menambahkan tooltip ke bidang formulir dengan C++.
void AddTooltipToFormField()
{
String _dataDir("C:\\Samples\\");
// Muat formulir PDF sumber
auto document = new Document(_dataDir + u"AddTooltipToField.pdf");
// Atur tooltip untuk textfield
//(doc.Form["textbox1"] as Field).AlternateName = "Text box tool tip";
// Simpan dokumen yang diperbarui
document->Save(_dataDir + u"AddTooltipToField_out.pdf");
}