PDF Formunu Doldur

PDF formları sıklıkla veri ve bilgi toplamak için kullanılır. Örneğin, Anketler genellikle anket amacıyla yanıt toplamak için tasarlanır. Günümüzün dijital dünyasında farklı doldurulabilir PDF formlarıyla etkileşim halindeyken, siz de C# dilinde PDF formlarını programlı olarak doldurabilir, düzenleyebilir ve değiştirebilirsiniz. PDF formlarının devasa kapsamı ve önemi göz önüne alındığında, Aspose.PDF for .NET API, PDF formlarıyla çalışmak için birçok özelliği destekler. Bu makalede C# dilini kullanarak aşağıdaki kullanım örneklerini keşfedelim:

Programlı Olarak C# Kullanarak Doldurulabilir PDF Formları Oluşturun

Aspose.PDF for .NET API kullanarak sıfırdan doldurulabilir bir PDF formu oluşturabilirsiniz. Burada, iki TextBoxField örneği ve RadioButton eklemenin temel örneğini ele alacağız. Ancak TextBoxField’dan biri tek satır, diğeri ise çok satırlıdır. PDF belgesinde form oluşturma adımları aşağıdadır:

  1. Document sınıfının bir örneğini oluşturun
  2. PDF belgesine boş bir sayfa ekleyin
  3. Forma TextBox Alanı ekleyin
  4. Yazı Tipi, Kenarlık vb. dahil olmak üzere alanların farklı özelliklerini ayarlayın.
  5. Forma Radio Button ekleyin
  6. PDF belgesini kaydet

Aşağıdaki kod parçacığı, C# kullanarak PDF’de nasıl form oluşturulacağını gösterir:

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// PDF belgesinin ilk sayfasına form alanları ekleyin            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//PDF'de belirli konum koordinatlarına Radyo düğmeleri ekleyin
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Konumu burada ayarla
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

Aşağıdaki ekran görüntüsü, yukarıdaki kod parçacığında belirtilen form alanlarını içeren çıktı PDF belgesini gösterir:

PDF formu

C# kullanarak Mevcut PDF’deki Form Alanlarını Doldurun, Değiştirin veya Silin

C# kullanarak PDF belgesinde form oluşturmayı keşfettiğimiz için, Aspose.PDF for .NET API mevcut PDF formlarıyla çalışmayı da destekler. API’nin aşağıdaki özelliklerini tartışalım.

i) Programlı Olarak C# kullanarak Mevcut PDF dosyasındaki bir Form Alanını doldurun

PDF formlarını doldurmak için yukarıdaki örnekte oluşturduğumuz PDF belgesi ile devam edeceğiz. Mevcut bir PDF belgesindeki alanları doldurma adımları aşağıdadır:

  1. Kaynak PDF belgesini yükle
  2. Metin Kutusu Alanları Alın ve değerleri doldurun
  3. Radyo düğmesi alanı alın ve gruptan bir seçenek belirleyin
  4. Dolu PDF formunu kaydet

Aşağıdaki kod parçacığı bu adımları izler ve C# kullanarak bir PDF belgesindeki alanların nasıl doldurulacağını açıklar:

// Belgeyi aç
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// alanları al
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Form alanlarının değerlerini doldurun
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Radyo düğmesi alanını al
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Gruptan radyo düğmesinin dizinini belirtin
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Güncellenen belgeyi kaydet
pdfDocument.Save(dataDir);

Aşağıdaki ekran görüntüsü, C# kullanılarak PDF formunun doldurulmuş form alanlarını gösterir:

Doldurulabilir PDF

ii) C# kullanarak PDF Belgesindeki Form Alanını Değiştirme

Bazen bir PDF formunun herhangi bir alanındaki değeri değiştirmeniz gerekebilir. Bir form alanındaki bir değeri değiştirmek, aşağıdaki adımlarla elde edilebilecek temel bir kullanım durumudur:

  1. PDF formunu yükleyin
  2. Adını kullanarak belirli bir alan alın
  3. Alan değerini değiştir
  4. Güncellenmiş PDF belgesini kaydedin

Aşağıdaki kod parçacığı, PDF belgesinin form alanındaki bir değerin nasıl değiştirileceğini gösterir:

// Belgeyi aç
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// bir alan al
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Alan değerini değiştir
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Güncellenen belgeyi kaydet
pdfDocument.Save(dataDir);

Burada sadece formun değerini değiştiremeyeceğiniz, diğer özelliklerin de güncellenebileceği dikkat çekicidir. Örneğin, alan yukarıdaki kod parçacığında Salt Okunur olarak işaretlenmiştir.

iii) C# Kullanarak Mevcut PDF Dosyasındaki Bir Form Alanını Silme

PDF form alanlarını eklemeyi ve doldurmayı zaten öğrendik. Şimdi bir form alanını kaldırmayı keşfedelim. Aşağıdaki adımları izlemeniz gerekir:

  1. PDF belgesini yükleyin
  2. Form alanının adı ile Sil yöntemini çağırın
  3. PDF Belgesini Kaydet

Aşağıdaki kod parçacığı, C# kullanarak form alanının PDF dosyasından nasıl silineceğini gösterir:

// Belgeyi aç
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Ada göre belirli bir alanı silin
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Değiştirilen belgeyi kaydet
pdfDocument.Save(dataDir);

C# kullanarak PDF Formlarının Genişletilmiş Haklarını Koruyun

Bir PDF formu, genişletilmiş özellikler olarak da adlandırılan ve form üzerinde değişiklik yaparken korumak isteyeceğiniz genişletilmiş haklara sahip olabilir. Aşağıdaki adımları izleyerek aşamalı olarak kaydetmeniz gerekir:

  • Akışta PDF belgesini yükleyin
  • Formla çalışma
  • Dosyayı herhangi bir parametre olmadan kaydedin

Aşağıdaki C# kod parçacığı, PDF formunun genişletilmiş haklarının nasıl korunacağını açıklar:

// Okuma ve Yazma FileAccess ile kaynak PDF formunu okuyun.
// ReadWrite iznine ihtiyacımız var çünkü değişiklikten sonra,
// Güncellenen içerikleri aynı belgeye/dosyaya kaydetmemiz gerekiyor.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Belge örneği örneği
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Tüm alanlardan değerleri al
foreach (Field formField in pdfDocument.Form)
{
    // Alanın tam adı A1 içeriyorsa, işlemi gerçekleştirin
    if (formField.FullName.Contains("nameBox1"))
    {
        // Form alanını TextBox olarak yayınla
        TextBoxField textBoxField = formField as TextBoxField;
        // Alan değerini değiştir
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Güncellenen belgeyi Save FileStream'e kaydedin
pdfDocument.Save();
// Dosya Akışı nesnesini kapatın
fs.Close();

C# kullanarak JavaScript’i PDF Formunda kullanın

Aspose.PDF for .NET API ile JavaScript’i PDF form alanlarında kullanabilirsiniz. Bu gereksinimi karşılamak için aşağıdaki adımları takip edelim:

  1. Document sınıfının bir örneğini başlat
  2. Belirli sayfa koordinatlarında ilk sayfada bir TextBoxField ekleyin
  3. JavaScript’i kurun
  4. Belge eylemini belirtin
  5. PDF belgesini kaydet

Aşağıdaki kod parçacığı, C# kullanarak PDF biçiminde JavaScript’in nasıl ekleneceğini gösterir:

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = yeni Kenarlık();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Belgeye alan ekle
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

JavaScript, PDF belgesi açıldığında sistemin geçerli tarih ve saatini alır ve bu değer bir metin kutusuna doldurulur.

Çözüm

Bu yazıda, PDF belgelerinde formla çalışmanın farklı yönlerini öğrendik. Aspose.PDF for .NET API ile PDF formları oluşturmak, doldurmak veya düzenlemek basittir. API, farklı dosyalarla çalışmak için bu tür birçok heyecan verici özellik sunar. Geri bildiriminizi veya yorumlarınızı Ücretsiz Destek Forumu aracılığıyla bize bildirin.

Ayrıca bakınız