Altbilgi içeriğine atla
IRONPDF KULLANARAK

.NET SDK Kullanarak C#'da PDF Formlari Nasıl Oluşturur, Doldurur ve Çıkartirsiniz

Etkilesimli PDF formlari statik belgeleri kodda tamamen oluşturulabilecek ve islenecek veri toplama araclarina dönüştürur. Hasta kabul portallari geliştirin, kredi basvurularini otomatik hale getirin veya veritabanindan binlerce onceden doldurulmuş uyumluluk formunu oluşturun; IronPDF, .NET geliştiricilerine her form gorevi - oluşturma, alan doldurma, veri cekme ve toplu işleme icin tek, tutarli bir API sunar.

Bu rehber, bu gorevlerin her birini .NET 10 projesine dogrudan yerleştirilebilecek calisan C# kod örnekleriyle takip eder.

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 1 - IronPDF

IronPDF ile Nasıl Başlanır?

IronPDF, NuGet uzerinde mevcuttur ve herhangi bir .NET projesine eklenmesi yaklasik bir dakika alir. Visual Studio'da Paket Yöneticisi Konsolunu açın ve çalıştırın:

Install-Package IronPdf
Install-Package IronPdf
SHELL

Ayrica, IronPdf u NuGet Paket Yonetici GUI'sinde arayabilir veya dotnet add package IronPdf ile .NET CLI'dan ekleyebilirsiniz. Ek runtime bagimliliklari veya konfigrasyon dosyalari gerekmez - kutuphane, Windows, Linux, macOS, Docker ve Kubernetes'de PDF'lari render etmek icin ihtiyaç duydugu her seyle birlikte gelir.

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 3 - Kurulum

Paket, .NET Framework 4.6.2+ ve tüm modern .NET surumleri, .NET 8, .NET 9 ve .NET 10 dahil olmak üzere hedefler. Paket yüklendikten sonra dosyanızın başına using IronPdf; ekleyin ve ilk PDF formunuzu oluşturmak için hazır olun.

Coklu platform dağıtim esnekligi, uretim ortamlarinda onemlidir. IronPDF, uygulamaniz Windows Server'i hedeflesin, bir Linux konteyneri ya da Azure Function App olsun - ayni kod her ortamda ayni ciktiyi uretir.

PDF Formlari Nasıl Calisir? AcroForms'u Anlamak

Kod yazmaya başlamadan once neyi insa etmekte oldugunuzu anlamaniz faydalidir. AcroForm spesifikasyonu - 1998'den beri PDF standardinin bir parcasi - herhangi bir standart PDF görüntüleyicisinin gösterip tamamlayabilecegi etkilesimli form alanlarini tanimlar. AcroForms, metin alanlari, onay kutucukleri, radyo dugmeleri, acilir listeler, liste kutulari ve imza alanlarini destekler.

IronPDF'nin oluşturdugu ve okudugu format AcroForms seklindedir. XFA formalarinin (eski, tescilli Adobe formati) aksine, AcroForms, uyumluluk sorunlari olmadan Adobe Reader, tarayici tabanli PDF görüntüleyiciler ve mobil uygulamalar genelinde calisir. IronPDF ile PDF formu oluşturdugunuzda, cikti, cetvel uyumlu bir AcroForm PDF'tir ve herhangi bir görüntüleyici tarafindan acilabilir.

Her form alani bir isim, bir tur ve bir değer icerir. Isim, veri okuma veya yazma işlemlerini programatik olarak yaparken kullandiginiz anahtardir. Alan adlari belgede benzersiz olmalidir - bir formu isimle dolduruyorsaniz ve alan adi tam olarak eslesmezse, yazma işlem sessizce etkisiz olacaktir, bu da veritabanindan form doldurmada yaygin bir hata kaynagidir.

Alan turleri hangi degerlerin kabul edilecegini belirler. Metin alanlari herhangi bir metin alir. Onay kutulari "Evet" veya "Hayir" kabul eder. Radyo dugmeleri, secilen secenegin metin degerini kabul eder. Acilir listeler, oluşturuldugunda alanda tanimlanan seçeneklerden biri olmasi gereken secilen maddenin metin degerini kabul eder.

HTML'den PDF Formu Nasıl Oluşturursunuz?

Fillable bir PDF formu insa etmenin en hizli yolu, standart HTML olarak yazmak ve dönüştürmektir. Her HTML form elementi, AcroForm karsiligina dogrudan map edilir: <input type="text"> bir metin alani, <input type="checkbox"> bir onay kutusu, <select> bir acilir menu ve <textarea> bir çok satirli metin alani olur.

Oluşturma formunu etkinlestirmek icin renderer'in RenderingOptions uzerinde CreatePdfFormsFromHtml = true ayarini yapin. Bu bayrak olmadan, HTML form elementleri statik gorunur içerik olarak render edilirler - PDF'de gorulebilirler, ama etkilesimli alanlar degildirler.

using IronPdf;

// HTML with form elements for PDF generation
string formHtml = @"
<html>
<body>
    <h2>Customer Registration</h2>
    <form>
        <label>Full Name:</label><br/>
        <input type='text' name='fullName'><br/>
        <label>Email Address:</label><br/>
        <input type='email' name='email'><br/>
        <label>Account Type:</label><br/>
        <select name='accountType'>
            <option value='personal'>Personal</option>
            <option value='business'>Business</option>
        </select><br/>
        <label>Newsletter:</label><br/>
        <input type='checkbox' name='newsletter' value='yes'>Subscribe<br/>
        <label>Comments:</label><br/>
        <textarea name='comments' rows='4' style='width:300px'></textarea>
    </form>
</body>
</html>";

// Enable form field generation from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Render and save the PDF with interactive fields
PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("registration-form.pdf");
using IronPdf;

// HTML with form elements for PDF generation
string formHtml = @"
<html>
<body>
    <h2>Customer Registration</h2>
    <form>
        <label>Full Name:</label><br/>
        <input type='text' name='fullName'><br/>
        <label>Email Address:</label><br/>
        <input type='email' name='email'><br/>
        <label>Account Type:</label><br/>
        <select name='accountType'>
            <option value='personal'>Personal</option>
            <option value='business'>Business</option>
        </select><br/>
        <label>Newsletter:</label><br/>
        <input type='checkbox' name='newsletter' value='yes'>Subscribe<br/>
        <label>Comments:</label><br/>
        <textarea name='comments' rows='4' style='width:300px'></textarea>
    </form>
</body>
</html>";

// Enable form field generation from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Render and save the PDF with interactive fields
PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("registration-form.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Her HTML girdisinin name atributu PDF'deki alan ismine donusur. Programli olarak alan degerlerini okuyup yazarken daha sonra kullandiginiz isim budur. Veri modelinize uyan isimleri secin - bu formu bir veritabani nesnesinden dolduracaksaniz, alanlari nesnenin özelliklerine gore adlandirin.

Çıktı

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 4 - PDF Ciktisi

Metin girisleri ve metin alanlari duzenlenebilir metin alanlari olarak render edilir. Eslesen name atributlarina sahip radio dugmeleri bir arada gruplandirilir, bu sekilde yalnizca bir tane secilebilir. Onay kutulari, acik olarak isaretlenebilir alanlar olarak render edilir. Olusan PDF, tüm form alanlarinin tamamlama icin hazır oldugu her standart görüntüleyicide acilir.

Bu HTML tabanli yaklasim, form tasarimlari zaten web sayfasi olarak mevcut oldugunda, ekibinizin form odaklari isaretleme icinde tutmayi tercih etmesi halinde veya uygulamanizin mevcut HTML sablonlariyla tam olarak uyusan formlar oluşturmaniz gerektiginde iyi calisir. Render, tüm PDF spesifikasyon detaylarini ele alir.

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 5 - Özellikler

PDF'e Programatik Olarak Form Alanlari Nasıl Eklenir?

Dogru koordinat kontrolleri gerektiginde veya mevcut bir PDF belgesine form alanlari eklerken, programatik form alani API her alanin konumunu, boyutunu ve varsıyılan degerini direk olarak kontrol etmenizi saglar.

Acik sayfa koordinatlariyla alan objeleri oluşturun. Menşei (0, 0) sayfanın sol alt köşesinde yer alir, x saga dogru ve y yukari doğru artar - PDF spesifikasyonu boyunca kullanılan ayni koordinat sistemi.

using IronPdf;
using IronSoftware.Forms;

// Generate a base PDF document to add fields to
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
    "<h1>Application Form</h1><p>Please complete all fields below.</p>");

// Text field: name, default value, page index, x, y, width, height
var nameField = new TextFormField("applicantName", "", 0, 50, 700, 200, 20);
pdf.Form.Add(nameField);

// Checkbox field with default unchecked state
var termsCheckbox = new CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15);
pdf.Form.Add(termsCheckbox);

// Dropdown with a defined list of options
var departmentCombo = new ComboboxFormField(
    "department", "", 0, 50, 600, 150, 20,
    new List<string> { "Engineering", "Marketing", "Sales", "Support" });
pdf.Form.Add(departmentCombo);

// Save the output document
pdf.SaveAs("application-with-fields.pdf");
using IronPdf;
using IronSoftware.Forms;

// Generate a base PDF document to add fields to
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
    "<h1>Application Form</h1><p>Please complete all fields below.</p>");

// Text field: name, default value, page index, x, y, width, height
var nameField = new TextFormField("applicantName", "", 0, 50, 700, 200, 20);
pdf.Form.Add(nameField);

// Checkbox field with default unchecked state
var termsCheckbox = new CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15);
pdf.Form.Add(termsCheckbox);

// Dropdown with a defined list of options
var departmentCombo = new ComboboxFormField(
    "department", "", 0, 50, 600, 150, 20,
    new List<string> { "Engineering", "Marketing", "Sales", "Support" });
pdf.Form.Add(departmentCombo);

// Save the output document
pdf.SaveAs("application-with-fields.pdf");
Imports IronPdf
Imports IronSoftware.Forms

' Generate a base PDF document to add fields to
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Application Form</h1><p>Please complete all fields below.</p>")

' Text field: name, default value, page index, x, y, width, height
Dim nameField As New TextFormField("applicantName", "", 0, 50, 700, 200, 20)
pdf.Form.Add(nameField)

' Checkbox field with default unchecked state
Dim termsCheckbox As New CheckboxFormField("agreeTerms", "no", 0, 50, 650, 15, 15)
pdf.Form.Add(termsCheckbox)

' Dropdown with a defined list of options
Dim departmentCombo As New ComboboxFormField("department", "", 0, 50, 600, 150, 20, New List(Of String) From {"Engineering", "Marketing", "Sales", "Support"})
pdf.Form.Add(departmentCombo)

' Save the output document
pdf.SaveAs("application-with-fields.pdf")
$vbLabelText   $csharpLabel

TextFormField, tek satirli bir metin girisi oluşturur. CheckboxFormField, değiştirilebilir bir onay kutusu yerlestirir. ComboboxFormField, saglanan seçenek listesine kısıtlı bir dropdown oluşturur. Her sınıf, sekme sirasi, tooltip metni, yalnizca-okunur durumu ve gerekli alan bayraklari icin ek özellikler sunar.

Her iki yaklasim - HTML dönüştürme ve programatik alan oluşturma - birlesebilir. Verimli sablon kontrolu icin HTML'den temel yerlesim oluşturun, sonra API kullanarak dogru pozisyonlama ile ozel alanlar ekleyin. Doldur ve duzenle rehberi mevcut alan turlerinin tam araligini kapsar.

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 6 - PDF Forms .NET SDK - IronPDF

Mevcut bir PDF Formu Nasıl Doldurulur?

Birçok iş akışı, önceden var olan bir PDF formuyla başlar - bir devlet şablonu, bir satıcı sözleşmesi veya kuruluşunuzun ortaklardan aldığı standart bir başvuru. Bu formlari programatik olarak doldurmak orijinal tasarımı yeniden yaratmadan belge oluşturmaya otomatikleştirmenizi sağlar.

Mevcut PDF'i PdfDocument.FromFile ile yukleyin, FindFormField kullanarak her alani adina gore bulun ve alana bir değer atayin Value ozelligine.

using IronPdf;

// Load the existing PDF containing AcroForm fields
PdfDocument pdf = PdfDocument.FromFile("existing-application.pdf");

// Fill text fields by exact field name
var nameField = pdf.Form.FindFormField("applicantName");
nameField.Value = "Sarah Johnson";

var emailField = pdf.Form.FindFormField("email");
emailField.Value = "sarah.johnson@example.com";

// Set checkbox and radio button values
var termsField = pdf.Form.FindFormField("agreeTerms");
termsField.Value = "Yes";

var accountTypeField = pdf.Form.FindFormField("accountType");
accountTypeField.Value = "business";

// Set dropdown selection to one of its defined options
var departmentField = pdf.Form.FindFormField("department");
departmentField.Value = "Engineering";

// Save the completed form
pdf.SaveAs("completed-application.pdf");
using IronPdf;

// Load the existing PDF containing AcroForm fields
PdfDocument pdf = PdfDocument.FromFile("existing-application.pdf");

// Fill text fields by exact field name
var nameField = pdf.Form.FindFormField("applicantName");
nameField.Value = "Sarah Johnson";

var emailField = pdf.Form.FindFormField("email");
emailField.Value = "sarah.johnson@example.com";

// Set checkbox and radio button values
var termsField = pdf.Form.FindFormField("agreeTerms");
termsField.Value = "Yes";

var accountTypeField = pdf.Form.FindFormField("accountType");
accountTypeField.Value = "business";

// Set dropdown selection to one of its defined options
var departmentField = pdf.Form.FindFormField("department");
departmentField.Value = "Engineering";

// Save the completed form
pdf.SaveAs("completed-application.pdf");
Imports IronPdf

' Load the existing PDF containing AcroForm fields
Dim pdf As PdfDocument = PdfDocument.FromFile("existing-application.pdf")

' Fill text fields by exact field name
Dim nameField = pdf.Form.FindFormField("applicantName")
nameField.Value = "Sarah Johnson"

Dim emailField = pdf.Form.FindFormField("email")
emailField.Value = "sarah.johnson@example.com"

' Set checkbox and radio button values
Dim termsField = pdf.Form.FindFormField("agreeTerms")
termsField.Value = "Yes"

Dim accountTypeField = pdf.Form.FindFormField("accountType")
accountTypeField.Value = "business"

' Set dropdown selection to one of its defined options
Dim departmentField = pdf.Form.FindFormField("department")
departmentField.Value = "Engineering"

' Save the completed form
pdf.SaveAs("completed-application.pdf")
$vbLabelText   $csharpLabel

Form oluşturma sirasinda atanan adla FindFormField alanlarini bulur. Alan adi eslestirmesi buyuk/küçük harfe duyarli ve kesin esleme - "applicantName" ve "ApplicantName" farkli alanlardir. Ucuncu taraf bir formu dolduruyorsanız ve alan isimlerinden emin degilseniz, isime gore doldurmaya calismadan once her alanin ismini yazdirmak icin pdf.Form uzerinde donun.

Girdi

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 7 - Örnek PDF Girdisi

Çıktı

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 8 - Doldurulmus PDF Cıktısı

Farkli alan turleri uygun değer formatlari gerektirir. Metin alanlari herhangi bir dizgiyi kabul eder. Onay kutulari "Evet" veya "Hayir" kabul eder. Radio butonlari istenilen secenegin dize degerini kabul eder. Acilir menuler, tanimli seçeneklerden birinin dize degerini kabul eder - seçenek listesinde olmayan bir değer ayarlamak etkili olmaz.

Bir çok alana sahip formları islerken, FindFormField'u tekrar tekrar cagirmak yerine pdf.Form uzerinde dogrudan donun. Yineleme, toplu işlemler icin daha etkilidir ve alan koleksiyonu uzerinde tekrar eden lineer aramalardan kacinir.

Form Alan Verilerini Nasıl Oku ve Çıkar?

Gonderilmis PDF'lerden form verilerini cikarmak ters bir işlemdir: Tamamlanmis bir form yukleyin, sonra her alanin adini okuyun ve mevcut degerini asagiya yonelik işleme icin alin. Bu kalip, kullanicilarin bir PDF formu doldurdugu, yukleyip ve uygulamanin verileri manuel veri girisi olmaksizin isledigi otomatik alma is akışlarını guclendirir.

using IronPdf;

// Load the completed, submitted PDF form
PdfDocument pdf = PdfDocument.FromFile("submitted-form.pdf");

// Iterate all fields to extract names, values, and types
Console.WriteLine("Form Data Extraction:");
Console.WriteLine("----------------------");
foreach (var field in pdf.Form)
{
    Console.WriteLine($"Field: {field.Name}");
    Console.WriteLine($"Value: {field.Value}");
    Console.WriteLine($"Type:  {field.GetType().Name}");
    Console.WriteLine();
}

// Or retrieve specific fields for targeted processing
var customerName  = pdf.Form.FindFormField("applicantName")?.Value ?? "Not provided";
var customerEmail = pdf.Form.FindFormField("email")?.Value ?? "Not provided";
Console.WriteLine($"Customer: {customerName} ({customerEmail})");
using IronPdf;

// Load the completed, submitted PDF form
PdfDocument pdf = PdfDocument.FromFile("submitted-form.pdf");

// Iterate all fields to extract names, values, and types
Console.WriteLine("Form Data Extraction:");
Console.WriteLine("----------------------");
foreach (var field in pdf.Form)
{
    Console.WriteLine($"Field: {field.Name}");
    Console.WriteLine($"Value: {field.Value}");
    Console.WriteLine($"Type:  {field.GetType().Name}");
    Console.WriteLine();
}

// Or retrieve specific fields for targeted processing
var customerName  = pdf.Form.FindFormField("applicantName")?.Value ?? "Not provided";
var customerEmail = pdf.Form.FindFormField("email")?.Value ?? "Not provided";
Console.WriteLine($"Customer: {customerName} ({customerEmail})");
Imports IronPdf

' Load the completed, submitted PDF form
Dim pdf As PdfDocument = PdfDocument.FromFile("submitted-form.pdf")

' Iterate all fields to extract names, values, and types
Console.WriteLine("Form Data Extraction:")
Console.WriteLine("----------------------")
For Each field In pdf.Form
    Console.WriteLine($"Field: {field.Name}")
    Console.WriteLine($"Value: {field.Value}")
    Console.WriteLine($"Type:  {field.GetType().Name}")
    Console.WriteLine()
Next

' Or retrieve specific fields for targeted processing
Dim customerName As String = If(pdf.Form.FindFormField("applicantName")?.Value, "Not provided")
Dim customerEmail As String = If(pdf.Form.FindFormField("email")?.Value, "Not provided")
Console.WriteLine($"Customer: {customerName} ({customerEmail})")
$vbLabelText   $csharpLabel

Form ozelligi, doküman icindeki tüm alanlarin sayilabilir bir koleksiyonunu sunar. Her alan nesnesi kendi Name, mevcut Value ve tur bilgisini saglar. Genel form isleyiciler, sert kodlanmis alan adlari olmadan herhangi bir PDF form yapisinin üstesinden gelmek için bu kalibi kullanir.

Çıktı

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 9 - Konsol Cıkışı

?. null-sartlı operator, FindFormField uzerinde beklenen bir alanin olmadigi durumlari yonetir - birden fazla kaynaktan gelen ve biraz farkli alan yapilarina sahip olabilecek formlari islerken kullanışlıdır. Alanin mevcut oldugunu varsaymak yerine herzaman bir yedek değer veya null kontrolu saglayin.

Cikarilmis veriler, Entity Framework veya ADO.NET ile veritabani yazimlari, API yanitlari icin JSON serileştirmesi ve raporlama icin CSV uretimiyle doğrudan entegre olur. IronPDF'i IronOCR ile birlestirin, ayrica form doldurulup gonderilmemis olup taranmis veya goranti tabanli form gonderimlerindeki verileri cikartmaniz gerektiginde kullanin.

Kisilestirilmis Formlari Nasıl Toplu Olarak Oluşturabilirsiniz?

PDF form otomasyonunda en yuksek hacimli kullanim durumu toplu üretimdir - bir veritabani, API veya CSV dosyasindaki verilerle onceden doldurulmus yuzlerce veya binlerce form üretmek. Basit bir dongu ekstra altyapi olmadan bunu idare eder.

using IronPdf;

// Retrieve customer records from your data source
var customers = GetCustomersFromDatabase();

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

foreach (var customer in customers)
{
    // Build an HTML template with static data pre-filled and interactive fields for user input
    string formHtml = $@"
    <html><body>
        <h2>Annual Review Form</h2>
        <p>Customer: {customer.Name}</p>
        <p>Account:  {customer.AccountNumber}</p>
        <label>Satisfaction Rating (1-5):</label><br/>
        <input type='text' name='rating' maxlength='1'><br/>
        <label>Feedback:</label><br/>
        <textarea name='feedback' rows='5' style='width:100%'></textarea>
    </body></html>";

    PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
    pdf.SaveAs($"review-form-{customer.AccountNumber}.pdf");
}
using IronPdf;

// Retrieve customer records from your data source
var customers = GetCustomersFromDatabase();

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

foreach (var customer in customers)
{
    // Build an HTML template with static data pre-filled and interactive fields for user input
    string formHtml = $@"
    <html><body>
        <h2>Annual Review Form</h2>
        <p>Customer: {customer.Name}</p>
        <p>Account:  {customer.AccountNumber}</p>
        <label>Satisfaction Rating (1-5):</label><br/>
        <input type='text' name='rating' maxlength='1'><br/>
        <label>Feedback:</label><br/>
        <textarea name='feedback' rows='5' style='width:100%'></textarea>
    </body></html>";

    PdfDocument pdf = renderer.RenderHtmlAsPdf(formHtml);
    pdf.SaveAs($"review-form-{customer.AccountNumber}.pdf");
}
Imports IronPdf

' Retrieve customer records from your data source
Dim customers = GetCustomersFromDatabase()

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

For Each customer In customers
    ' Build an HTML template with static data pre-filled and interactive fields for user input
    Dim formHtml As String = $"
    <html><body>
        <h2>Annual Review Form</h2>
        <p>Customer: {customer.Name}</p>
        <p>Account:  {customer.AccountNumber}</p>
        <label>Satisfaction Rating (1-5):</label><br/>
        <input type='text' name='rating' maxlength='1'><br/>
        <label>Feedback:</label><br/>
        <textarea name='feedback' rows='5' style='width:100%'></textarea>
    </body></html>"

    Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(formHtml)
    pdf.SaveAs($"review-form-{customer.AccountNumber}.pdf")
Next
$vbLabelText   $csharpLabel

HTML şablonu, statik müşteri verilerini dogrudan gomulu hale getirir, boylece alici adini ve hesap numarasini onceden yazilmis olarak gorur ve saglamalari gereken bilgileri icin etkileşimli alanlar sunar. Yuzlerce kaydi toplu olarak işleme, manuel hazirligin gerektigi saatler yerine saniyeler icinde tamamlanir.

Dongu yapisi herhangi bir veri kaynagiyla uyumludur: Entity Framework sorgulari, API yanitlari veya CSV disaridan alip iceri aktarmalar. Her yineleme, o kayıt icin ozel olarak hazirlanmiş, dağıtıma hazır bir PDF uretir. Yüksek veri aktarım oranına sahip senaryolar için, formlari paralel olarak işlemek icin await ile Task.WhenAll kullanın - IronPDF'in RenderHtmlAsPdfAsync metodu tamamen asenkron işlemeyi destekler.

Toplu uretimden sonra, formlar genellikle dağıtim icin IronZIP kullanilarak bir ZIP arsivine paketlenir, e-posta entegrasyonu ile gonderilir, bulut depolamaya yuklenir veya yasal tamamlama icin elektronik imza platformuna yonlendirilir.

Tamamlandi Olarak PDF Formlarini Nasıl Gevsek Halde Sabitlersiniz?

Bir form tam olarak doldurulduktan ve dogrulandiğinda, degerlerin daha fazla duzenlenemez olmasi icin kilitlemeniz cokca gerekir. Gevsekleştirme, tüm etkileşimli form alanlarini statik, duzenlenemez görüntü içerik yapar fakat tamamlanmis formun dogru gorunumunu korur.

using IronPdf;

// Load a completed, signed form
PdfDocument pdf = PdfDocument.FromFile("completed-application.pdf");

// Flatten all form fields - converts interactive fields to static content
pdf.Form.Flatten();

// Save the locked, non-editable version
pdf.SaveAs("locked-application.pdf");
using IronPdf;

// Load a completed, signed form
PdfDocument pdf = PdfDocument.FromFile("completed-application.pdf");

// Flatten all form fields - converts interactive fields to static content
pdf.Form.Flatten();

// Save the locked, non-editable version
pdf.SaveAs("locked-application.pdf");
Imports IronPdf

' Load a completed, signed form
Dim pdf As PdfDocument = PdfDocument.FromFile("completed-application.pdf")

' Flatten all form fields - converts interactive fields to static content
pdf.Form.Flatten()

' Save the locked, non-editable version
pdf.SaveAs("locked-application.pdf")
$vbLabelText   $csharpLabel

Gevsekleştirme tamamlanmis formlari arşivlemek, uzun sureli depolama icin PDF/A uyumlu belgeler uretmek ve dağıtim icin son kopyalari oluşturmak icin uygun yaklasimdir. Gevsekleştirmeden sonra, form verileri hala gorunur fakat değiştirilemez. PDF gevsekleştirme rehberi, farkli gevsekleştirme seçeneklerini, secici alan gevsekleştirme de dahil, kapsar.

Yasal baglayici tamamlama gerektiren scenaryolar icin, IronPDF dijital imzaları, imzalayanin kimligini kriptografik olarak belgeye baglayan, destekliyor. Dijital imzalar ve form gevsekleştirme farkli amaclara hizmet eder - imzalar otantifikasyonu kanitlar, gevsekleştirme değişiklikleri onler.

Sıradaki Adımlarınız Neler?

.NET uzerindeki PDF formlari dört temel işlemi kapsar: HTML'den veya API ile formlar oluşturma, veri kaynaklarından mevcut formlari doldurma, teslim edilen veriyi cikarma ve kisilestirilmis kopyalari toplu olarak üretme. IronPDF tüm bunlari tutarli bir API ile hlu'dan Linux, macOS ve kapsayicilar icinde ayni kodla calisarak ele alir.

PDF Formları Oluşturma nasıl yapılır kılavuzu her mevcut alan turunu kod örnekleriyle kapsar. Doldur ve Düzenle Rehberi toplu alan güncellemeleri, radyo buton gruplari ve liste kutusu işleme konusunda derinlemesine bilgi verir. IronPDF dokümantasyon merkezi tüm API referansini ve çok sayfali formlar, form alani doğrulamasi ve yuksek hacimli hatlar icin performans ayarlama gibi ileri konulari sunar.

Ücretsiz deneme başlatın veya uretim dağıtımı için lisans seçeneklerini gozdnormek icin lisans seçeneklerini inceleyin.

PDF Forms .NET SDK: C# Kullanarak IronPDF ile Doldurulabilir PDF'ler Oluşturma: Resim 10 - Lisanslama

Sıkça Sorulan Sorular

IronPDF hangi PDF form standardını kullanıyor?

IronPDF, PDF spesifikasyonunda 1998'den beri tanımlanan etkileşimli form standardı AcroForms'ları yaratır ve okur. AcroForms, eski XFA formatının sınırlı uyumluluğu aksine Adobe Reader, tarayıcı tabanlı PDF görüntüleyiciler ve mobil uygulamalar tarafından desteklenir.

IronPDF'de HTML'den form alanı oluşturmayı nasıl etkinleştirirsiniz?

`RenderHtmlAsPdf` çağrılmadan önce `renderer.RenderingOptions.CreatePdfFormsFromHtml = true` olarak ayarlayın. Bu bayrak olmadan, HTML form elemanları etkileşimli AcroForm alanları yerine statik görsel içerik olarak rendere edilir.

Mevcut bir PDF formunda belirli bir alan nasıl doldurulur?

`PdfDocument.FromFile` ile PDF'yi yükleyin, alan nesnesini almak için `pdf.Form.FindFormField("fieldName")` çağırın ve ardından Değer özelliğine bir dize atayın. Alan adı eşleştirmesi büyük/küçük harfe duyarlıdır. Sonucu `pdf.SaveAs` ile kaydedin.

Gönderilen bir PDF'den tüm form alanı değerleri nasıl çıkarılır?

`pdf.Form` üzerinde `foreach (var field in pdf.Form)` ile iterasyon yapın ve her alanın `Name` ve `Value` özelliklerini okuyun. Hedefli çekim için, eksik alanları güvenle işlemek için boş koşullu operatör ile `pdf.Form.FindFormField("name")?.Value` kullanın.

IronPDF bir döngü içinde bir veritabanından yüzlerce form üretebilir mi?

Evet. `CreatePdfFormsFromHtml = true` ile bir `ChromePdfRenderer` oluşturun, veri kayıtlarınız üzerinde iterasyon yapın, her kayıt için bir HTML dizesi oluşturun, `RenderHtmlAsPdf` çağırın ve her sonucu kaydedin. Yüksek verim için, paralel render için `Task.WhenAll` ile `RenderHtmlAsPdfAsync` kullanın.

Bir PDF formunun düzleştirilmesi ne yapar?

Düzleştirme, tüm etkileşimli form alanlarını statik, düzenlenemez görsel içeriğe dönüştürerek dolu formun tam görünümünü korur. `pdf.Form.Flatten()` çağırıp ardından kaydedin. Sonuç, arşivleme, PDF/A uyumluluğu ve alan düzenlemesinin engellenmesi gereken dağıtım için uygun hale gelir.

IronPDF, Linux ve Docker kaplarında çalışıyor mu?

Evet. IronPDF, Windows, Linux, macOS, Docker ve Kubernetes'te çalışır. Aynı C# kodu tüm platformlarda aynı PDF çıktısını üretir. Platforma özgü yapılandırma için belgedeki IronPDF Linux ve Docker kılavuzlarına bakın.

IronPDF hangi platformlar ve .NET sürümleri için PDF formlarını destekliyor?

IronPDF, .NET Framework 4.6.2 ve üstünü ve .NET 6, .NET 7, .NET 8, .NET 9, ve .NET 10 da dahil olmak üzere tüm modern .NET sürümlerini destekler. Ayrıca ASP.NET, ASP.NET Core, Blazor Server, Azure Functions ve MAUI uygulamalarını da destekler.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara