Bilgisayarların ve internetin ortaya çıkmasıyla birlikte, birçok bilgi dijital olarak yakalanır. Bu süreci daha verimli hale getirmek için farklı şirketler çözümler üretti. Böyle bir çözüm, doldurulabilir PDF formlarıdır. PDF formları, bilgileri dijital olarak yakalamayı kolaylaştıran popüler bir seçimdir. PDF formları, anket verilerini almak veya kabul formları olarak kullanılabilir. Bunun ışığında, bu makale size C++ kullanarak doldurulabilir PDF formlarını nasıl oluşturacağınızı, dolduracağınızı ve düzenleyeceğinizi öğretecektir.
- Doldurulabilir PDF Formları Oluşturma, Doldurma ve Düzenleme için C++ API
- C++ kullanarak Doldurulabilir PDF Formları oluşturun
- C++ kullanarak PDF Dosyasındaki Mevcut Bir Formu Doldurun
- C++ kullanarak PDF Formundaki Form Alanının Değerini Değiştirme
- C++ Kullanarak Mevcut Bir PDF Formundan Form Alanını Silme
Doldurulabilir PDF Formları Oluşturma, Doldurma ve Düzenleme için C++ API
Aspose.PDF for C++, PDF belgeleri oluşturmanıza, okumanıza ve güncellemenize olanak tanıyan bir C++ kitaplığıdır. Ayrıca API, doldurulabilir PDF formları oluşturmayı, doldurmayı ve düzenlemeyi destekler. API’yi NuGet aracılığıyla yükleyebilir veya doğrudan indirilenler bölümünden indirebilirsiniz.
PM> Install-Package Aspose.PDF.Cpp
C++ kullanarak Doldurulabilir PDF Formları oluşturun
Bu örnekte, iki metin kutusu ve bir radyo düğmesi ile sıfırdan bir form oluşturacağız. Ancak, bir metin kutusu çok satırlı, diğeri ise tek satırdır. Aşağıda, bir PDF dosyasında form oluşturma adımları verilmiştir.
- Belge sınıfının bir örneğini oluşturun.
- Belgeye boş bir sayfa ekleyin.
- TextBoxField sınıfının bir örneğini oluşturun.
- TextBoxField’nın FontSize, Color vb. gibi özelliklerini ayarlayın.
- İkinci TextBoxField örneğini oluşturun ve özelliklerini ayarlayın.
- Document->getForm()->Add(System::SharedPtr)‘yi kullanarak her iki metin kutusunu da forma ekleyin. alan, int32t sayfaNumarası) yöntemi.
- Bir tablo oluşturun.
- RadioButtonField sınıfının bir örneğini oluşturun.
- Document->getForm()->Add(System::SharedPtr) kullanarak RadioButton’u forma ekleyin. alan, int32t sayfaNumarası) yöntemi.
- Radyo düğmesinin seçeneklerini temsil etmek için RadioButtonOptionField sınıfının iki örneğini oluşturun.
- OptionName, Width ve Height öğelerini ayarlayın ve RadioButtonField->Add(System::SharedPtr) öğesini kullanarak seçenekleri radyo düğmesine ekleyin const & newItem) yöntemi.
- Cell->getParagraphs()->Add(System::SharedPtr) komutunu kullanarak radyo düğmesinin seçeneklerini tablonun hücrelerine ekleyin. paragraf) yöntemi.
- Document->Save(System::String outputFileName) yöntemini kullanarak çıktı dosyasını kaydedin.
Aşağıdaki örnek kod, C++ kullanılarak bir PDF dosyasında nasıl form oluşturulacağını gösterir.
// Document sınıfının bir örneğini oluşturun
auto pdfDocument = MakeObject<Document>();
// Belgeye boş bir sayfa ekleyin
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle1 = MakeObject<Aspose::Pdf::Rectangle>(275, 740, 440, 770);
// Bir TextBoxField oluşturun
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);
// Bir TextBoxField oluşturun
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'ı forma ekleyin
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);
// tablo oluştur
System::SharedPtr<Table> table = MakeObject<Table>();
table->set_Left(200);
table->set_Top(300);
table->set_ColumnWidths(u"120");
// Tabloyu sayfaya ekleyin
page->get_Paragraphs()->Add(table);
// Satırlar ve Sütunlar Oluşturun
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();
// Bir RadioButtonField Oluşturun
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);
rf->set_PartialName(u"radio");
// RadioButtonField'ı forma ekleyin
pdfDocument->get_Form()->Add(rf, 1);
// Radyo düğmesi seçenekleri oluşturma
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);
// Seçenekleri RadioButtonField'a ekleyin
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);
// Seçenekleri tablonun hücrelerine ekleyin
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);
// Çıktı dosyasını kaydedin
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
C++ kullanarak PDF Dosyasındaki Mevcut Bir Formu Doldurun
Bu örnekte, önceki örnekte oluşturulan dosyayı kullanacağız. Document sınıfını kullanarak dosyayı yükleyeceğiz ve alanlarını dolduracağız. Aşağıda, mevcut bir PDF formunun alanlarını doldurma adımları yer almaktadır.
- Belge sınıfını kullanarak PDF dosyasını yükleyin.
- Document->getForm()->idxget(System::String name) yöntemini kullanarak TextBoxFields’ı alın.
- TextBoxField->setValue(System::String value) yöntemini kullanarak her iki TextBoxFields değerini ayarlayın.
- Document->getForm()->idxget(System::String name) yöntemini kullanarak RadioButtonField öğesini alın.
- RadioButtonField->setSelected(int32t value) yöntemini kullanarak RadioButtonField değerini ayarlayın.
- Document->Save(System::String outputFileName) yöntemini kullanarak çıktı dosyasını kaydedin.
Aşağıdaki örnek kod, bir PDF dosyasındaki mevcut bir formun C++ kullanılarak nasıl doldurulacağını gösterir.
// PDF dosyasını yükleyin
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");
// Metin kutusu alanlarını al
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"));
// Metin kutusu alanlarının değerini ayarlayın
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.");
// Radyo düğmesi alanını al
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));
// Radyo düğmesi alanının değerini ayarlayın
radioField->set_Selected(1);
// Çıktı dosyasını kaydedin
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
C++ kullanarak PDF Formundaki Form Alanının Değerini Değiştirme
Aspose.PDF for C++ ile önceden doldurulmuş bir alanın değerini de değiştirebiliriz. Bu örnekte, önceki örnekte oluşturulan dosyayı kullanacağız ve ilk TextBoxField değerini değiştireceğiz. Bunu başarmak için lütfen aşağıda verilen adımları izleyin.
- Belge sınıfını kullanarak PDF dosyasını yükleyin.
- Document->getForm()->idxget(System::String name) yöntemini kullanarak TextBoxField öğesini alın.
- TextBoxField değerini TextBoxField->setValue(System::String value) yöntemini kullanarak güncelleyin.
- Document->Save(System::String outputFileName) yöntemini kullanarak çıktı dosyasını kaydedin.
Aşağıdaki örnek kod, C++ kullanılarak bir PDF formundaki bir alanın değerinin nasıl değiştirileceğini gösterir.
// PDF dosyasını yükleyin
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// TextBoxField'ı al
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
// TextBoxField değerini güncelleyin
textBoxField->set_Value(u"Changed Value");
// TextBoxField'ı salt okunur olarak işaretleyin
textBoxField->set_ReadOnly(true);
// Çıktı dosyasını kaydedin
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
C++ Kullanarak Mevcut Bir PDF Formundan Form Alanını Silme
API, form alanlarını mevcut PDF formlarından silmenize de olanak tanır. Aşağıda, bir form alanını bir PDF formundan silme adımları yer almaktadır.
- Belge sınıfını kullanarak PDF dosyasını yükleyin.
- Document->getForm()->Delete(System::String fieldName) yöntemini kullanarak alanı silin.
- Document->Save(System::String outputFileName) yöntemini kullanarak çıktı dosyasını kaydedin.
Aşağıdaki örnek kod, C++ kullanılarak varolan bir PDF formundan bir form alanının nasıl silineceğini gösterir.
// PDF dosyasını yükleyin
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// alanı sil
pdfDocument->get_Form()->Delete(u"nameBox1");
// Çıktı dosyasını kaydedin
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
Ücretsiz Lisans Alın
Ücretsiz bir geçici lisans talep ederek API’yi değerlendirme sınırlamaları olmaksızın deneyebilirsiniz.
Çözüm
Bu makalede, C++ kullanarak PDF dosyalarında nasıl form oluşturulacağını öğrendiniz. Ek olarak, PDF formlarındaki mevcut alanları nasıl dolduracağınızı ve değiştireceğinizi öğrendiniz. Aspose.PDF for C++ API kullanarak bir PDF formundan bir form alanının nasıl kaldırılacağını da gördünüz. API, resmi belgelere bakarak ayrıntılı olarak keşfedebileceğiniz, PDF dosyalarıyla çalışmak için bir dizi ek özellik sağlar. API’nin herhangi bir yönüyle ilgili sorularınız varsa lütfen ücretsiz destek forumumuzdan bize ulaşmaktan çekinmeyin.