C++ ile Doldurulabilir PDF Formları Oluşturun, Doldurun veya Düzenleyin

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

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.

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");
Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

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.

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");
Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

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.

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");
Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

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.

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");
Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

Örnek kod tarafından oluşturulan PDF dosyasının görüntüsü

Ü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.

Ayrıca bakınız