Altbilgi içeriğine atla
IRONPDF KULLANARAK

ASP.NET MVC PDF Görüntüleyicisi Nasıl Oluşturulur

Etkileşimli PDF formları, statik belgeleri tamamen kodla oluşturup işleyebileceğiniz veri toplama araçlarına dönüştürür. Hasta giriş portalları oluştururken, kredi başvurularını otomatikleştirirken veya bir veritabanından binlerce önceden doldurulmuş uyumluluk formu oluştururken, IronPDF .NET geliştiricilerine her form görevi için tek, tutarlı bir API sağlar - oluşturma, alan doldurma, veri çıkarma ve toplu işleme.

Bu kılavuz, her biri çalışan C# kod örnekleriyle .NET 10 projenize doğrudan ekleyebileceğiniz görevleri ele alır.

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 1 - IronPDF

IronPDF'ye Nasıl Başlanır?

IronPDF, NuGet'te mevcuttur ve herhangi bir .NET projesine eklemesi yaklaşık bir dakika sürer. Visual Studio'da Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:

Install-Package IronPdf

IronPDF için NuGet Package Manager GUI'de arama yapabilir veya .NET CLI ile dotnet add package IronPdf ekleyebilirsiniz. Ek runtime bağımlılıkları veya yapılandırma dosyaları gerektirmez - kütüphane, Windows, Linux, macOS, Docker ve Kubernetes'te PDF'leri renderlemek için ihtiyacı olan her şeyi sağlar.

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 3 - Kurulum

Paket, .NET Framework 4.6.2+ ve .NET 8, .NET 9 ve .NET 10 dahil olmak üzere tüm modern .NET sürümlerini hedefler. Paket kurulduktan sonra, dosyanızın en üstüne using IronPdf; ekleyin ve ilk PDF formunuzu oluşturmaya hazırsınız.

Üretim ortamlarında çapraz platform dağıtım esnekliği önemlidir. IronPDF, uygulamanız Windows Server, bir Linux konteyner veya bir Azure Function App hedeflese de tutarlı şekilde çalışır - aynı kod her ortamda aynı çıkışı üretir.

PDF Formları Nasıl Çalışır? AcroForms'i Anlama

Kod yazmadan önce, ne inşa ettiğinizi anlamak faydalıdır. AcroForm spesifikasyonu, PDF standardının 1998'den beri bir parçasıdır ve herhangi bir standart PDF görüntüleyicisi tarafından gösterilip tamamlanabilir interaktif form alanlarını tanımlar. AcroForms metin alanlarını, onay kutularını, radyo düğmelerini, açılır listeleri, liste kutularını ve imza alanlarını destekler.

AcroForms, IronPDF'in okuduğu ve oluşturduğu formattır. XFA formlarından (eski, tescilli bir Adobe formatı) farklı olarak, AcroForms, Adobe Reader, tarayıcı tabanlı PDF görüntüleyicileri ve mobil uygulamalar arasında uyumluluk sorunları olmadan çalışır. IronPDF ile PDF formları oluşturduğunuzda, çıktı, herhangi bir görüntüleyici tarafından açılabilen standartlara uygun bir AcroForm PDF olur.

Her form alanı, bir isim, bir tür ve bir değer taşır. İsim, verileri programatik olarak okurken veya yazarken kullandığınız anahtardır. Alan isimleri belge içinde benzersiz olmalıdır - isme göre bir form doldurursanız ve alan ismi tam olarak eşleşmezse, yazma işlemi sessizce etkisiz olur, bu, formları bir veritabanı şemasından doldururken yaygın bir hata kaynağıdır.

Alan türleri hangi değerlerin kabul edileceğini belirler. Metin alanları herhangi bir dize alır. Onay kutuları "Evet" veya "Hayır" kabul eder. Radyo butonları seçilen seçeneğin string değerini kabul eder. Açılır listeler, oluşturulduğunda tanımlanan seçeneklerden biri olan seçilen öğenin dize değerini kabul eder.

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

Doldurulabilir bir PDF formu oluşturmanın en hızlı yolu, standart HTML olarak yazmak ve dönüştürmektir. Her HTML form elemanı, doğrudan karşılığı olan AcroForm elemanına eşlenir: <input type="text"> bir metin alanı olur, <input type="checkbox"> bir onay kutusu, <select> bir açılır liste ve <textarea> çok satırlı bir metin alanı olur.

Oluşturma işlevini, RenderingOptions renderleyici üzerinde CreatePdfFormsFromHtml = true ayarlayarak etkinleştirin. Bu bayrak olmadan, HTML form elemanları statik görsel içerik olarak renderlenir - PDF'de görülebilirler ancak interaktif alanlar değillerdir.

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 input'unun name özelliği, PDF içindeki alan adı olur. Bu isim, daha sonra alan değerlerini programatik olarak okurken veya yazarken kullandığınız şeydir. Veri modelinizle eşleşen isimler seçin - bu formu bir veritabanı nesnesinden dolduracaksanız, alanları nesnenin özellikleriyle adlandırın.

Çıktı

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 4 - PDF Çıkışı

Metin girişleri ve metin alanları düzenlenebilir metin alanları olarak renderlenir. Aynı name özelliklerine sahip radyo butonları gruplanarak yalnızca biri seçilebilir. Onay kutuları değiştirilebilir alanlar olarak renderlenir. Oluşan PDF, tüm form alanlarıyla birlikte tamamlanmaya hazır herhangi bir standart görüntüleyicide açılır.

Bu HTML tabanlı yaklaşım, form tasarımları zaten web sayfaları olarak mevcut olduğunda, ekibiniz HTML ile formların bakımını tercih ettiğinde veya mevcut HTML şablonlarınıza tam olarak uyan formlar oluşturmanız gerektiğinde iyi çalışır. Renderer, tüm PDF spesifikasyon detaylarını ele alır.

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 5 - Özellikler

PDF'ye Programatik Olarak Form Alanları Nasıl Eklenir?

Hassas koordinat kontrolü gerektiğinde veya mevcut bir PDF belgesine form alanları eklediğinizde, programatik form alanı API'si her alanın konumu, boyutu ve varsayılan değeri üzerinde doğrudan kontrol sağlar.

Açık sayfa koordinatlarıyla alan nesneleri oluşturun. Orijin (0, 0) sayfanın sol alt köşesindedir, x sağa, y yukarı artıracak şekilde - PDF spesifikasyonunda kullanılan koordinat sistemiyle aynıdır.

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 satırlı metin girişi oluşturur. CheckboxFormField değiştirilebilir bir onay kutusu yerleştirir. ComboboxFormField sağlanan seçenek listesiyle kısıtlanmış bir açılır liste oluşturur. Her sınıf, sekme sırası ayarlama, ipucu metni, yalnızca okuma durumu ve gerekli alan bayrakları için ek özellikler sunar.

HTML dönüştürme ve programatik alan oluşturma yaklaşımlarının her ikisi de birleştirilebilir. Verimli şablon kontrolü için temeli HTML'den üretin, ardından API'yi kullanarak hassas konumlandırma ile özel alanlar ekleyin. Doldurma ve düzenleme formları kılavuzu, mevcut alan türlerinin tam aralığını kapsar.

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 6 - PDF Forms .NET SDK - IronPDF

Mevcut PDF Formu Nasıl Doldurulur?

Birçok iş akışı, önceden var olan bir PDF formuyla başlar - bir hükümet şablonu, bir satıcı sözleşmesi veya kuruluşunuzun ortaklarından aldığı standart bir başvuru formu. Bu formları programatik olarak doldurmak, orijinal tasarımı yeniden oluşturmadan belge oluşturmayı otomatikleştirmenizi sağlar.

Var olan PDF'i PdfDocument.FromFile ile yükleyin, her alanı adlarına göre FindFormField kullanarak bulun ve alanın Value özelliğine bir değer atayın.

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

FindFormField oluşturma sırasında atanan adla alanları bulur. Alan adı eşleştirme büyük/küçük harf duyarlıdır ve tamdır - "applicantName" ve "ApplicantName" farklı alanlardır. Üçüncü taraf bir form dolduruyorsanız ve alan adlarından emin değilseniz, adla doldurma işlemine başlamadan önce her alanın adını yazdırmak için pdf.Form üzerinde yineleme yapın.

Giriş

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 7 - Örnek PDF Girişi

Çıktı

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 8 - Doldurulmuş PDF Çıkışı

Farklı alan türleri için uygun değer formatları gereklidir. Metin alanları herhangi bir dize kabul eder. Onay kutuları "Evet" veya "Hayır" kabul eder. Radyo butonları istenen seçeneğin string değerini kabul eder. Açılır listeler, tanımlanan seçeneklerden birinin dize değerini kabul eder - seçenek listesinde olmayan bir değerin ayarlanması etkisizdir.

Birçok alan içeren formları işlerken, pdf.Form üzerinde doğrudan yineleme yapın, FindFormField tekrar tekrar çağırmak yerine. İterasyon, toplu işlemler için daha verimlidir ve alan koleksiyonu boyunca tekrarlanan doğrusal aramaları önler.

Form Alanı Verileri Nasıl Okunur ve Çıkarılır?

Gönderilen PDF'lerden form verisi çıkarma, ters işlemdir: tamamlanmış bir formu yükleyin, ardından her alanın adını ve cari değerini okuma işlemi için okuyun. Bu model, kullanıcıların bir PDF formunu tamamladığı, yükleyip, uygulamanın verileri manuel veri girişi olmadan işlediği otomatik giriş işlemlerine güç verir.

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 özelliği, belgedeki tüm alanların sayılabilir bir koleksiyonunu sunar. Her alan nesnesi kendi Name, mevcut Value ve tür bilgilerini sağlar. Genel form işlemcileri bu modeli, önceden kodlanmış alan isimleri olmadan herhangi bir PDF form yapısını yönetmek için kullanır.

Çıktı

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 9 - Konsol Çıkışı

Null-bırakım operatörü ?., beklenen bir alanın eksik olduğu durumları FindFormField üzerinde ele alır - bu, biraz farklı alan yapılarına sahip birden çok kaynaktan gelen formları işlerken faydalıdır. Alan mevcut varsayımı yerine her zaman bir geçerli değer veya boş kontrol sağlamalıdır.

Çıkarılan veriler, veritabanı yazmaları için Entity Framework veya ADO.NET ile doğrudan entegre edilir, API yanıtları için JSON serileştirme ve raporlama için CSV üretimi. IronPDF'yi, dijital olarak doldurulmamış alanların olduğu taranmış veya görüntü tabanlı form gönderimlerinden veri çıkarılması gerektiğinde IronOCR ile eşleştirin.

Ölçekli Kişiselleştirilmiş Formlar Nasıl Oluşturulur?

PDF form otomasyonu için en yüksek hacimli kullanım durumu, bir veritabanından, API'den veya CSV dosyasından veri ile önceden doldurulmuş yüzlerce veya binlerce formun oluşturulduğu toplu üretimdir. Basit bir döngü, bu işlemi herhangi bir ekstra altyapı olmadan gerçekleştirir.

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, alıcının adını ve hesap numarasını önceden basılmış olarak görmek için statik müşteri verilerini doğrudan yerleştirir ve sağlamaları gereken veriler için etkileşimli alanlar sağlar. Yüzlerce kaydın toplu işlenmesi, elle hazırlık yapılmasının gerektireceği saatler yerine saniyeler içinde tamamlanır.

Döngü yapısı, herhangi bir veri kaynağıyla çalışır: Entity Framework sorguları, API yanıtları veya CSV aktarımları. Her yineleme, o kayda özel olarak özelleştirilmiş, dağıtıma hazır eksiksiz bir PDF üretir. Yüksek verim senaryoları için, formları paralel olarak oluşturmak üzere Task.WhenAll ile await kullanın - IronPDF'nin RenderHtmlAsPdfAsync metodu tamamen asenkron renderlemeyi destekler.

Toplu oluşturma sonrası, formlar genellikle dağıtım için IronZIP kullanılarak bir ZIP arşivine paketlenir, e-posta entegrasyonu ile gönderilir, bulut depolamaya yüklenir veya bağlama tamamlama için bir elektronik imza platformuna yönlendirilir.

PDF Formları Tamamlandıktan Sonra Nasıl Sabitlenir veya Kilitlenir?

Tamamen doldurulmuş ve doğrulanmış bir formu sabitlemeniz gerektiğinde, çoğunlukla değerlerin daha fazla düzenlenememesi için kilitlemeniz gerekir. Sabitlenme, tüm etkileşimli form alanlarını statik, düzenlenemez görsel içeriklere dönüştürür ve tamamlanmış formun tam görünümünü 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

Arşivleme için tamamlanmış formlar oluşturma, uzun süreli depolama için PDF/A uyumlu belgeler üretme ve dağıtım için son kopyalar oluşturma için doğru yaklaşımdır. Sabitlendikten sonra, form verileri hala görünürdür ancak değiştirilemez. PDF sabitleme kılavuzu, seçici alan sabitlemesi dahil olmak üzere ek sabitleme seçeneklerini kapsar.

Yasal bağlayıcılık gerektiren senaryolar için, IronPDF ayrıca dijital imzaları destekler, imzalayanın kimliğini belgeye kriptografik olarak bağlayan. Dijital imzalar ve form sabitleme farklı amaçlara hizmet eder - imzalar otantikliği ispatlar, sabitleme değişikliği önler.

Sonraki Adımlarınız Neler?

.NET'teki PDF formları, HTML'den veya API aracılığıyla formlar oluşturma, mevcut formları veri kaynaklarından doldurma, gönderilen verileri çıkarma ve toplu ölçekte kişiselleştirilmiş kopyalar üretme olmak üzere dört ana işlemi kapsar. IronPDF, dördünü de tutarlı bir API aracılığıyla yönetir ve aynı kod Windows, Linux, macOS ve konteynerlerin içinde çalışır.

PDF Forms nasıl yapılır kılavuzu her mevcut alan türünü kod örnekleri ile kapsar. Doldurma ve düzenleme formları kılavuzu, toplu alan güncellemeleri, radyo düğme grupları ve liste kutusu işlemlerine daha derinlemesine bakar. IronPDF dokümantasyon merkezi, çok sayfalı formlar, form alanı doğrulama, ve yüksek hacimli hatlar için performans ayarlamaları dahil olmak üzere gelişmiş konular ve tam API referansını sağlar.

Ücretsiz bir deneme başlatın veya üretim dağıtımı için lisanslama seçeneklerini gözden geçirin.

PDF Forms .NET SDK: IronPDF Kullanarak C# ile Doldurulabilir PDF'ler Oluşturun: Görsel 10 - Lisanslama

Sıkça Sorulan Sorular

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

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

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

RenderHtmlAsPdf çağrısından önce `renderer.RenderingOptions.CreatePdfFormsFromHtml = true` ayarlayın. Bu bayrak olmadan, HTML form elemanları interaktif AcroForm alanları yerine statik görsel içerik olarak render edilir.

Var olan bir PDF formunda belirli bir alanı nasıl doldurursunuz?

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

Gönderilmiş bir PDF'den tüm form alanı değerlerini nasıl çıkarırsınız?

`pdf.Form` üzerinde `foreach (var alan in pdf.Form)` döngüsü ile yineleme yapın ve her alanın `Name` ve `Value` özelliklerini okuyun. Belirli bir çıkarma için `null` alanları güvenli bir şekilde işlemek üzere `pdf.Form.FindFormField("name")?.Value` ifadesini kullanın.

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

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

Bir PDF formunun düzleştirilmesi ne yapar?

Düzleştirme, doldurulmuş formun tam görünümünü korurken tüm interaktif form alanlarını statik, düzenlenemez görsel içeriğe dönüştürür. `pdf.Form.Flatten()` çağrısı yapın ardından kaydedin. Sonuç, arşivleme, PDF/A uyumluluğu ve alan düzenlemenin önlenmesi gereken dağıtımlar için uygundur.

IronPDF Linux ve Docker konteynerlerinde çalışıyor mu?

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

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

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

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

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