HTML'yi C# (Geliştirici Kılavuzu) ile PDF'ye Nasıl Dönüştürebilirim?
HTML'yi C#'de PDF'ye dönüştürmek, gerçek dünya gereksinimleri ortaya çıkana kadar basit görünür. Geliştiriciler kısa süre içinde, render doğruluğunu, dağıtımını ve ölçeklenebilirliği etkileyen sınırlamalarla karşılaşır.
Render ötesinde, altyapı uyumluluğu kritik hale gelir. Ekipler, modern .NET çalıştırma süreleri, bulut platformları ve konteynır ortamları arasında PDF üretiminin performans kaybı olmadan çalıştığını sağlamalıdır.
Bu açıkları ele almak için, IronPDF gibi modern Chrome tabanlı çözümler, daha yüksek render sadakatinin yanı sıra daha geniş platform desteği ve üretime hazır dağıtım iş akışları sağlar—daha sonraki bu kılavuzda adım adım incelenmiştir.
Özet Geçiş Kılavuzu: HTML'yi PDF'ye Dönüştürün
HTML, CSS ve JavaScript'ten yüksek kaliteli PDF dosyaları oluşturmak için ChromePdfRenderer.RenderHtmlAsPdf yöntemini sunan IronPDF kütüphanesini kullanarak C#'da HTML'yi kolayca PDF'ye dönüştürebilirsiniz.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
IronPdf.ChromePdfRenderer .StaticRenderHtmlAsPdf("<p>Hello World</p>") .SaveAs("pixelperfect.pdf"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
IronPDF'nin 30 günlük denemesine kaydolduktan veya satın aldıktan sonra, lisans anahtarınızı e-posta adresinize gönderilen mesajda bulabilirsiniz. Uygulamanızın başında lisans anahtarınızı ekleyin.
IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf
IronPdf.License.LicenseKey = "KEY"
NET Geliştiricilerinin C# İçin HTML'den PDF'ye Dönüştürücüsüne Neden İhtiyacı Var
IronPDF, yerleşik Google Chromium render motorunu kullanarak yüksek sadakatli dönüşümler sağlar, web içeriğinizin düzenini ve stilini doğru bir şekilde korur.
✅ Güçlü Chrome Görüntüleme Motoru: Chrome'un Blink motoru ile doğru HTML'den PDF'e dönüştürme, şimdi bellek, formlar ve görüntüleme doğruluğu iyileştirmeleriyle güçlendirildi (v2025.9.4)
✅ Piksel Düzeyinde Doğruluk: Üretilen PDF'ler, web sayfası ile tamamen uyumludur, yazıcı dostu bir sürüm değildir. Son düzeltmeler, özel başlık/altbilgi kesme, gri tonlama metin koruması ve meta verilerde özel karakterler/emojiler kapsamaktadır (v2025.9.4 itibarıyla)
✅ Tam Modern Web Desteği: Tüm HTML öğeleri için tam CSS3, HTML5, JavaScript desteği. Son iyileştirmeler, uzun metin alanları ve onay kutuları için form alanı işleme desteğini kapsar.
✅ 5-20 Kat Performans Artışı: Tarayıcı otomasyonu veya web sürücülerinden önemli ölçüde daha hızlı, şimdi bellek kaçaklarını giderir ve damgalar/başlıklar gibi tekrarlanan öğeler için dosya boyutlarını azaltır.
✅ PDF/UA Uyumlu: Bölüm 508 standartlarına uygun erişilebilir PDF oluşturma, çapraz platform (örneğin, Linux) form görüntüleme için geliştirilmiştir.
✅ Harici Bağımlılık Yok: Sunuculara yüklemek için yürütülebilir dosya yok
✅ .NET 10, 9, 8, 7, 6, Core, Standard veya Framework üzerinde çalışan C#, F#, ve VB.NET için tasarlandı
IronPDF, .NET geliştiricileri için süreci basitleştirir, web uygulamanızın HTML'sinden profesyonel görünümlü PDF belgeleri oluşturmak için basit ve verimli bir çözüm sunar. Faturalardan ve raporlardan sertifikalara ve arşivlere kadar, geliştiriciler tanıdık web yığınlarıyla çalışabilirken IronPDF karmaşık işleri yalnızca birkaç satır kod ile halleder.
İLGİLİ: IronPDF Değişiklik Günlüğü: Güncellemeler, Başarılar, Yol Haritası
Neleri Öğreneceksiniz
- HTML Dizesini PDF'e Nasıl Dönüştürürsünüz
- Mevcut URL'yi PDF'e Nasıl Dışa Aktarabilirsiniz
- HTML Dosyasını PDF'e Nasıl Dönüştürürsünüz
- Razor Sayfalarını PDF'e Nasıl Dönüştürürsünüz
- MVC Görünümlerini PDF'e Nasıl Dönüştürürsünüz
- Toplu PDF Oluşturma İçin HTML Şablonu Nasıl Üretilir
- Asenkron Metod Kullanarak PDF Nasıl Üretilir
- Gelişmiş Güvenlik Özellikleri Nasıl Eklenir
- HTML Formlarını Doldurulabilir PDF'lere Nasıl Dönüştürürsünüz
- Belirli HTML Öğelerini PDF'e Nasıl Dönüştürürsünüz
- Kimlik Doğrulaması Yapılmış Sayfaları PDF'e Nasıl Görüntülersiniz
1. How to Convert HTML to PDF C
HTML dizeleri, URL'ler veya HTML dosyaları ile çalışıyor olun, IronPDF belirli gereksinimlerinizi karşılayan yüksek kaliteli PDF belgeleri üretmek için esnek seçenekler sunar.
Bu eğitimde, HTML dizesi ile PDF'e, URL'den PDF'e ve HTML dosyasından PDF'e kadar en yaygın senaryoları adım adım inceleyeceğiz. Ek olarak, IronPDF ayrıca PDF belgelerini manipüle etmek için çeşitli işlemler sunar:
HTML Dizesini PDF'e Nasıl Dönüştürürsünüz
En temel işlem HTML dizesi ile PDF'e dönüştürmedir. Bu yöntem, dinamik olarak üretilen HTML içeriği için idealdir. RenderHtmlAsPdf yöntemi, HTML'yi doğrudan PDF'ye dönüştürürken HTML5, CSS3, JavaScript ve resimleri tam olarak destekler.
using IronPdf;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
Imports IronPdf
' Create the Chrome renderer
Dim renderer As New ChromePdfRenderer()
' Convert HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
' Save the PDF
pdf.SaveAs("output.pdf")
Performans
IronPDF'nin dize, URL ve HTML'den PDF'ye dönüştürme performansı, 16 GB RAM'e sahip bir Lenovo dizüstü bilgisayar kullanılarak ölçülmüştür. Test belgesi, standart CSS Grid, gradyanlar ve çok bölümlü tablolar içeren 3 sayfalık bir Enterprise faturasıdır.
Sonuçlar şu şekildedir:
| Metrik | Değer |
|---|---|
| Ortalama işleme süresi | ~486 ms |
| Render başına bellek | ~3,6 MB |
16 çekirdekli bir iş istasyonunda (Windows 11, .NET 8) arka arkaya 5 kez render edilerek ölçülmüştür. İlk çağrı ayrıca tek seferlik Chromium motoru başlatma işlemini de içerir (~1,3 s)
Testi ilk kez çalıştırdığımda, işleme süresi oldukça yavaştı (her çağrı için bir saniyeden fazla!). Neler olduğunu inceledikten sonra, birkaç Chromium örneğinin açık olduğunu ve pil gücüyle çalıştığımı fark ettim; bu iki durum da kütüphanenin gerçek hızını göstermesine engel oluyordu. Rakip işlemleri kapatıp fişi taktığımda, işler netleşti: sıcak çalıştırmaların ortalaması ~486 ms idi ve en hızlısı 473 ms civarındaydı.
HTML dizesi, resimler veya stil sayfaları gibi yerel varlıklara atıfta bulunuyorsa, tüm kaynaklarla birlikte HTML içeriğini doğru şekilde dönüştürmek için BaseUrlPath parametresini kullanın:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Convert HTML content with local image and CSS references
Dim html As String = "
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>"
' Set base path for resolving relative URLs in HTML to PDF conversion
Dim pdf = renderer.RenderHtmlAsPdf(html, "C:\MyProject\Assets\")
pdf.SaveAs("report.pdf")
BaseUrlPath parametresini sunar; bu nedenle, toplu işler çalıştırılmadan önce hızlı bir çıktı kontrolü genellikle bunu yakalamak için yeterlidir.İLGİLİ NASIL YAZILIR MAKALE: C#'ta HTML Dizesini PDF'e Nasıl Dönüştürürsünüz
Mevcut URL'yi PDF'e Nasıl Dışa Aktarabilirsiniz
Web sayfalarını C# ile PDF'e dönüştürmek, ekiplerin PDF tasarımı ve arka plan render işini ayırmasını sağlar. Bu yaklaşım, belirtilen herhangi bir URL'yi doğrudan PDF formatına dönüştürmenizi sağlar.
Yazdırma vs Ekran CSS
IronPDF'i her iki CSS medya türü ile görüntülemeyi ayarlayabilirsiniz.
using IronPdf;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
using IronPdf;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
Imports IronPdf
Imports IronPdf.Rendering
' Initialize HTML to PDF converter
Dim renderer As New ChromePdfRenderer()
' Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Screen media type shows the entire web page as displayed on screen
JavaScript Desteği
IronPDF, HTML'den PDF'e dönüşüm yaparken JavaScript, jQuery ve AJAX'i tamamen destekler. Dinamik HTML içeriği için IronPDF'i web sayfalarını PDF'e dönüştürmeden önce JavaScript'in tamamlanmasını bekleyecek şekilde yapılandırabilirsiniz. Bu, tek sayfalık uygulamalar ve dinamik web siteleri için idealdir.
using IronPdf;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
using IronPdf;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
Imports IronPdf
' Configure JavaScript rendering for dynamic HTML content to PDF
Dim renderer As New ChromePdfRenderer()
' Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = True
' WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500 ' milliseconds
JavaScript yürütme işlemi, ileri düzey bir d3.js akor çizelgesini bir web sayfasından PDF formatına dönüştürdüğünüzde de gösterilebilir:
using IronPdf;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
using IronPdf;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
Imports IronPdf
' Create renderer for JavaScript-heavy HTML
Dim renderer As New ChromePdfRenderer()
' Convert d3.js visualization web page to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")
' Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf")
Duyarlı CSS
Duyarlı web sayfaları tarayıcıda görüntülenmek üzere tasarlanmıştır ve IronPDF, sunucunuzun işletim sisteminde gerçek bir tarayıcı penceresi açmadığından, duyarlı HTML öğeleri en küçük boyutlarında görüntülenebilir. Web sayfalarının tamamını görüntülerken bu sorunu aşmak için PdfCssMediaType.Print kullanılması önerilir.
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
```vbnet
' Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
```
İLGİLİ NASIL YAZILIR MAKALE: URL'yi PDF'e Nasıl Görüntülersiniz
HTML Dosyasını PDF'e Nasıl Dönüştürürsünüz
Yerel HTML dosyalarını PDF'e dönüştürmek, CSS, resimler ve JavaScript dahil tüm relatif varlıkları dosya:// protokolü kullanılarak açılmış gibi korur. Bu HTML'den PDF'e yöntem, şablonları veya önceden tasarlanmış HTML sayfalarını PDF belgelerine dönüştürmek için idealdir.
using IronPdf;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
using IronPdf;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
Imports IronPdf
' Initialize ChromePdfRenderer for HTML file conversion
Dim renderer As New ChromePdfRenderer()
' Convert HTML file to PDF documents
' Preserves all relative paths and linked resources in HTML
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
' Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf")
' All CSS, JavaScript, and images load correctly in the generated PDF
Performans
Performans, tüm değişkenleri sabit tutarak diskteki bir dosyadan önceki 3 sayfalık Enterprise faturayı işleyerek tekrar ölçüldü:
| Metrik | Değer |
|---|---|
| Ortalama işleme süresi | ~502 ms |
| Render başına bellek | ~3,1 MB |
Aynı 16 çekirdekli iş istasyonunda (Windows 11, .NET 8) arka arkaya 5 render işlemi üzerinden ölçülmüştür. Dosya tabanlı işleme, bellek içi dize işlemeyle yaklaşık %3 oranında eşleşir; diskten HTML'yi okumak ölçülebilir bir ek yük getirmez.
İLGİLİ NASIL YAZILIR MAKALE: HTML Dosyasını PDF'e Nasıl Görüntülersiniz
Razor Sayfalarını PDF'e Nasıl Dönüştürürsünüz
ASP.NET Core projeniz zaten Razor Sayfalarını kullanıyorsa, HTML'yi yeniden oluşturmanıza gerek kalmadan bunları doğrudan PDF'e dönüştürebilirsiniz. IronPDF'nin Razor uzantısı, .cshtml sayfanızı (modeli ve düzeni ile birlikte) tek bir çağrı ile PDF belgesi olarak işleyen RenderRazorToPdf yöntemini ekler.
PM > Install-Paket IronPdf.Extensions.Razor
PM > Install-Paket IronPdf.Extensions.Razor
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class ReportModel : PageModel
{
public IActionResult OnGet()
{
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class ReportModel : PageModel
{
public IActionResult OnGet()
{
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Public Class ReportModel
Inherits PageModel
Public Function OnGet() As IActionResult
Dim renderer As New ChromePdfRenderer()
' Render a Razor Page directly to PDF
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
İLGİLİ NASIL YAZILIR MAKALE: Razor Sayfalarında CSHTML'i PDF'e Nasıl Dönüştürürsünüz
MVC Görünümlerini PDF'e Nasıl Dönüştürürsünüz
MVC patternini kullanan ekipler, mevcut Görünümleri ve kontrollerini doğrudan PDF olarak üretebilir. MVC Core uzantı paketini yükleyin, ardından görünüm yolunuz ve modelinizle RenderRazorViewToPdf'yi çağırın — IronPDF, Razor işleme boru hattını yönetir ve bitmiş bir PDF dosyası oluşturur.
Bu, özellikle raporlar, faturalar ve HTML'nin önceden tasarlanmış ve tarayıcıda test edilmiş olduğu diğer sayfalar için faydalıdır. Üretilen PDF, düzen sayfaları ve parçalı görünümler dahil tam Görünüm çıktısını korur.
PM > Install-Paket IronPdf.Extensions.Mvc.Co/re
PM > Install-Paket IronPdf.Extensions.Mvc.Co/re
İlk olarak, denetleyicilerinizin IRazorViewRenderer hizmetini enjekte edebilmesi için Program.cs dosyanıza bu hizmeti kaydedin:
using IronPdf.Extensions.Mvc.Co/re;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
using IronPdf.Extensions.Mvc.Co/re;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
Imports IronPdf.Extensions.Mvc.Core
Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
' Register the Razor view renderer for IronPDF
builder.Services.AddSingleton(Of IHttpContextAccessor, HttpContextAccessor)()
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
Ardından denetleyici eyleminizde render'ı inject edin ve herhangi bir Görünümü PDF'e dönüştürün:
using IronPdf;
using IronPdf.Extensions.Mvc.Co/re;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
// Inject the view renderer via constructor
public ReportController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Download()
{
var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using IronPdf.Extensions.Mvc.Co/re;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
// Inject the view renderer via constructor
public ReportController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Download()
{
var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports IronPdf.Extensions.Mvc.Core
Imports Microsoft.AspNetCore.Mvc
Public Class ReportController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
' Inject the view renderer via constructor
Public Sub New(viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
End Sub
Public Function Download() As IActionResult
Dim reportModel = New With {.Title = "Quarterly Report", .Total = 1250.0}
Dim renderer = New ChromePdfRenderer()
' Render an MVC View with model data to PDF
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Report.cshtml", reportModel)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
İLGİLİ NASIL YAZILIR MAKALE: ASP.NET Core MVC'de Görünümleri PDF'e Nasıl Dönüştürürsünüz
2. HTML'den PDF'e Ayarları Nasıl Yapılandırırsınız
PDF belgelerinin işlenmesi açısından IronPDF, işlenmiş PDF'ler için ChromePdfRenderer.RenderingOptions özelliği aracılığıyla kapsamlı özelleştirme olanakları sunar.
| Ayarlar | Açıklama | Örnek |
|---|---|---|
PaperSize
|
Mevcut PDF'ler için sayfa boyutlarını ayarlayın (A4, Mektup, Hukuk, vb.) |
PdfPaperSize.A4
|
PaperOrientation
|
Mevcut PDF'ler için Dikey veya Yatay ayarlayın |
PdfPaperOrientation.Landscape
|
MarginTop/Bottom/Left/Right
|
Sayfa kenar boşluklarını milimetre olarak ayarlayın (varsayılan: 25mm) | |
CssMediaType
|
HTML'den PDF'e Ekran veya Yazdır CSS |
PdfCssMediaType.Print
|
PrintHtmlBackgrounds
|
Arka plan renklerini/resimlerini dahil edin (varsayılan: true) | true |
EnableJavaScript
|
HTML içeriği işlenmeden önce JavaScript çalıştırın | true |
WaitFor.RenderDelay
|
Dinamik HTML içeriği için bekleme süresi (ms) | 500 |
PDF belgelerini manipüle etmek için tam bir yapılandırma örneği için bu kod parçacığına bakın:
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer As New ChromePdfRenderer()
' Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
' Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
' Generate PDFs with all settings applied to HTML content
Dim htmlContent As String = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>"
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdfDocument.SaveAs("styled-output.pdf")
İLGİLİ NASIL YAZILIR MAKALELER:
| PDF Dönüşümünü Özelleştirin | PDF Düzenini İnceleyin |
|---|---|
Özel HTTP Başlıkları, Çerezler ve Giriş Kimlik Bilgileri Nasıl Ayarlanır
Kimlik doğrulaması gerektiren veya özel istek meta verileri gerektiren URL'leri işlerken, IronPDF size istek ile birlikte giriş kimlik bilgilerini, oturum çerezlerini ve HTTP başlıklarını dahil etme imkanı sağlar. Bu, intranet panoları, sınırlı raporlar veya doğrudan API tarafından oluşturulan sayfaları PDF'e dönüştürmenizi sağlar.
Temel veya NTLM kimlik doğrulaması için, renderer üzerinde bir LoginCredentials nesnesi ayarlayın. Token tabanlı veya oturum tabanlı erişim için, RenderUrlAsPdf işlevini çağırmadan önce çerezleri ve başlıkları RenderingOptions işlevinden geçirin.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword"
}
' Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123"
' Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
İLGİLİ NASIL YAZILIR MAKALELER: Giriş Kimlik Doğrulaması Ardından PDF'leri Görüntüleyin |Özel HTTP İstek Başlıkları
PDF İşleme İçin Proxy Nasıl Yapılandırılır
Kurumsal bir proxy arkasında harici kaynakları yükleyen HTML'yi işlerken, proxy adresini RenderHtmlAsPdf() üzerinde üçüncü parametre olarak geçirin. Bu bir yöntem parametresidir, ChromePdfRenderOptions üzerindeki bir özellik değildir — bu nedenle, renderer örneğinde değil, her render çağrısında ayarlanır.
Kimlik doğrulamalı proxy'ler için, kimlik bilgilerini http://user:pass@host:port biçimini kullanarak doğrudan URL'ye gömün. Şifrelerdeki özel karakterleri Uri.EscapeDataString() ile URL kodlayın.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Proxy is the third parameter — not a render option
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath:=Nothing,
proxy:="http://proxy.co/rp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
RenderUrlAsPdf()'nin proxy parametresini kabul etmediğini unutmayın. Proxy arkasında bulunan bir canlı URL'yi görüntülemek için, önce HttpClient ile WebProxy yapılandırılmış olarak HTML'yi alın, ardından varlık yükleme için proxy parametresiyle RenderHtmlAsPdf()'ye aktarın.
İLGİLİ NASIL YAZILIR MAKALE: PDF İşleme İçin Proxy Sunucuları Nasıl Yapılandırılır
3. Gelişmiş PDF Oluşturma ve Güvenlik Özelliklerini Nasıl Kullanırsınız
Gelişmiş şablon oluşturma, asenkron işlemler ve güvenlik özellikleri ile HTML'den PDF'e dönüştürme işlemi için kurumsal düzey yetenekleri ortaya çıkarın. Bu PDF manipülasyon yöntemleri, PDF belgelerini büyük ölçekte oluşturmanıza, hassas PDF dosyalarını korumanıza ve HTML'yi profesyonel PDF formatına dönüştürdüğünüzde belge özgünlüğünü sağlamanıza olanak tanır.
Toplu PDF Oluşturma İçin HTML Şablonu Nasıl Üretilir
Temel Toplu PDF Oluşturma
Toplu PDF oluşturma, birden çok kişiselleştirilmiş PDF belgesini verimli bir şekilde üretmek için gereklidir. Temel senaryolar için, C#'daki String.Format yöntemi basit PDF işlemleri için en uygunudur.
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
' Simple HTML templating with String.Format
Dim htmlTemplate As String = String.Format("<h1>Hello {0}!</h1>", "World")
' Results in HTML content: <h1>Hello World!</h1>
Daha uzun şablonlar için PDF belgeleri üretmeniz gerektiğinde, HTML içeriğinizdeki yer tutucu değiştirmelerini kullanın:
using IronPdf;
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
using IronPdf;
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
Imports IronPdf
' Define reusable HTML template for PDF files
Dim htmlTemplate As String = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>"
' Customer names for batch PDF conversion processing
Dim names As String() = {"John", "James", "Jenny"}
' Create personalized PDF documents for each customer
Dim renderer As New ChromePdfRenderer()
For Each name In names
' Replace placeholder with actual data in HTML string
Dim htmlInstance As String = htmlTemplate.Replace("[[NAME]]", name)
' Generate personalized PDF document from HTML content
Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
' Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf")
Next
Handlebars.NET ile HTML'den PDF'e Şablonlama
HTML'yi PDF'ye dönüştürürken döngüler ve koşul ifadeleri içeren karmaşık şablonlar için, Handlebars.NET ile gelişmiş şablonlama özelliğini kullanarak dinamik HTML içeriğine sahip PDF belgeleri oluşturun.
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Paket Handlebars.NET
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Paket Handlebars.NET
using HandlebarsDotNet;
using IronPdf;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Com/pile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
using HandlebarsDotNet;
using IronPdf;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Com/pile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
Imports HandlebarsDotNet
Imports IronPdf
' Define Handlebars template with placeholders for HTML content
Dim source As String =
"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>"
' Compile template for reuse in PDF conversion
Dim template = Handlebars.Compile(source)
' Create data object (can be database records) for HTML to PDF directly
Dim data = New With {
.title = "Monthly Report",
.body = "Sales increased by 15% this month."
}
' Merge template with data to create HTML content
Dim htmlResult = template(data)
' Convert templated HTML to PDF using the PDF converter
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlResult)
pdf.SaveAs("monthly-report.pdf")
İLGİLİ NASIL YAPILIR Makalesi: GitHub'da Handlebars.NET hakkında daha fazla bilgi edinin
PDF Sayfa Kırılmalarını Kontrol Edin:
Üretilen PDF belgelerindeki sayfa düzenini yönetmek, HTML parçacıklarını dönüştürdüğünüzde profesyonel, okunabilir düzenler sağlar. PDF dosyalarınızda sayfanın nerede kırılacağını kontrol etmek için CSS kullanın.<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
Asenkron Yöntem Kullanarak PDF Nasıl Üretilir
IronPDF, büyük ölçekte PDF dosyaları üretmeniz gerektiğinde, HTML'den PDF'e dönüştürme gereksinimleriniz için tam asenkron ve çok iş parçacığı desteği ile kurumsal düzeyde performans sunar.
using IronPdf;
using System.Co/llections.Generic;
using System.Linq;
using System.Threading.Tasks;
public class PdfGenerationService
{
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlŞablonlar)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = htmlŞablonlar.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
}
using IronPdf;
using System.Co/llections.Generic;
using System.Linq;
using System.Threading.Tasks;
public class PdfGenerationService
{
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlŞablonlar)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = htmlŞablonlar.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Public Class PdfGenerationService
' Async method for non-blocking PDF generation from HTML content
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
Dim renderer As New ChromePdfRenderer()
' Async HTML to PDF conversion preserves thread pool
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)
' Return PDF files as byte array for web responses
Return pdf.BinaryData
End Function
' Concurrent batch PDF generation for multiple HTML strings
Public Async Function GenerateMultiplePdfsAsync(htmlŞablonlar As List(Of String)) As Task
Dim renderer As New ChromePdfRenderer()
' Create parallel conversion tasks to generate PDF documents
Dim tasks = htmlŞablonlar.Select(Function(html) renderer.RenderHtmlAsPdfAsync(html))
' Await all PDF conversions simultaneously
Dim pdfs = Await Task.WhenAll(tasks)
' Save generated PDF files from HTML content
For i As Integer = 0 To pdfs.Length - 1
pdfs(i).SaveAs($"document-{i}.pdf")
Next
End Function
End Class
- En iyi PDF oluşturma performansı için 64-bit sistemler kullanın.
- PDF belgeleri ürettiğinizde yeterli sunucu kaynaklarına sahip olun (yetersiz güçteki ücretsiz katmanlardan kaçının)
- HTML içeriğinde karmaşık JavaScript için yeterli RenderDelay sağlayın.
- Mümkün olduğunda
ChromePdfRendererörneklerini yeniden kullanın. - Toplu/asenkron işlemler için kaynak kullanımını azaltmak üzere v2025.9.4 bellek düzeltmelerinden yararlanın; yenilenen özel başlıklar/altbilgiler ile dosya boyutlarının azalmasını test edin.
İLGİLİ NASIL YAZILIR MAKALE: Asenkron ve Çok İş Parçacığı ile PDF'ler Nasıl Üretilir
Gelişmiş Güvenlik Özellikleri Nasıl Eklenir
.NET'te PDF Dosyaları İçin Parola Koruması Nasıl Eklenir
HTML içeriğini korumalı PDF formatına dönüştürürken, oluşturulan hassas PDF belgelerini parolalar ve izinlerle güvence altına alın.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Convert HTML to PDF with security
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>")
' Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123" ' Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456" ' Password to modify PDF files
' Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint
' Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256
pdf.SaveAs("secure-document.pdf")
PDF Dosyalarına Dijital İmzalar Nasıl Eklenir
HTML içeriğinden PDF dosyaları üretirken, PDF belgelerinin özgünlüğünü sağlamak için kriptografik imzalar ekleyin.
using IronPdf;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval",
SignerName = "Authorized Signer" // New property in v2025.8.8 for enhanced signature details
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
using IronPdf;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval",
SignerName = "Authorized Signer" // New property in v2025.8.8 for enhanced signature details
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
Imports IronPdf
Imports IronPdf.Signing
Dim renderer As New ChromePdfRenderer()
' Generate PDF from HTML page
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")
' Create digital signature with certificate for PDF files
Dim signature As New PdfSignature("certificate.pfx", "password") With {
.SigningContact = "legal@company.com",
.SigningLocation = "New York, NY",
.SigningReason = "Contract Approval",
.SignerName = "Authorized Signer" ' New property in v2025.8.8 for enhanced signature details
}
' Apply signature to PDF documents
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
İLGİLİ NASIL YAZILIR MAKALE: C# ile PDF Belgelerini Dijital Olarak İmzalama
HTML Formlarını Doldurulabilir PDF'lere Nasıl Dönüştürürsünüz
Standart HTML form öğelerini etkileşimli, doldurulabilir PDF form alanlarına dönüştürmek için CreatePdfFormsFromHtml görüntüleme seçeneğini etkinleştirin. Bu, üretilen PDF belgesinde metin girişlerini, onay kutularını, radyo düğmelerini ve açılır menüleri düzenlenebilir alanlar olarak korur.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim htmlForm As String = "
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlForm)
pdf.SaveAs("onboarding-form.pdf")
name özniteliğine sahip olmalıdır. Tüm adlar yinelenirse, alanlar üretilen PDF'de aynı değeri paylaşır, kullanılar formu doldurduğunda beklenmedik davranışlara neden olur.İLGİLİ NASIL YAZILIR MAKALE: C# İle Doldurulabilir PDF Formları Nasıl Oluşturulur
Belirli HTML Öğelerini PDF'e Nasıl Dönüştürürsünüz
Tam belge yerine sayfanın belirli bir bölümünü işlemek için, hedef öğeyi görsümü öncesinde izole edin. En doğrudan yaklaşım, JavaScript görüntüleme seçeneğini kullanarak belge gövdesini hedef öğenin içeriğiyle değiştirmek ve WaitFor.HtmlQuerySelector() ile birleştirerek, ayıklama işleminden önce öğenin varlığını doğrulamaktır. Aşağıdaki kod parçacığı document.head öğesini korur, böylece stil sayfaları ve yazı tipleri aktarılır — bu adım atılmazsa, üst seçicilere dayanan CSS kuralları çıkarılan PDF'de kaybolur.
Ham HTML'ye erişiminiz olan sunucu tarafı senaryolarında, AngleSharp gibi bir ayrıştırıcıyla hedef parçayı ayıklayın ve RenderHtmlAsPdf()'ye aktarın — JavaScript yürütülmesine gerek yoktur.
using IronPdf;
// Full page HTML containing the target element
string fullPageHtml = @"
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
using IronPdf;
// Full page HTML containing the target element
string fullPageHtml = @"
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
Imports IronPdf
' Full page HTML containing the target element
Dim fullPageHtml As String = "
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
' Replace the body with only the target element
renderer.RenderingOptions.JavaScript = "
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
"
' Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000)
Dim pdf = renderer.RenderHtmlAsPdf(fullPageHtml)
pdf.SaveAs("invoice-summary.pdf")
İLGİLİ NASIL YAZILIR MAKALE: HTML Öğeleri ve Kısmi Sayfalar Nasıl PDF'e Dönüştürülür
Kimliği Doğrulanmış Sayfaları PDF Olarak Nasıl İşlenir?
Kimlik doğrulamanın arkasında yer alan sayfaları işlemek için üç mekanizma vardır: ağ oturum açma bilgileri, özel çerezler ve HTTP istek başlıkları. Bu mekanizmalar, korumalı web içeriğini PDF'ye dönüştürürken en yaygın kimlik doğrulama senaryolarını kapsar.
Oturum Açma Bilgileri
Korunan URL'leri PDF/A'ya dönüştürürken temel, özet veya NTLM kimlik doğrulaması için ChromeHttpLoginCredentials kullanın.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/reports");
pdf.SaveAs("authenticated-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/reports");
pdf.SaveAs("authenticated-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure network authentication
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword",
.AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
}
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/reports")
pdf.SaveAs("authenticated-report.pdf")
Çerezler ve HTTP Başlıkları
Token tabanlı veya oturum bazlı kimlik doğrulama için, özel çerezleri ve HTTP başlıklarını doğrudan işleme isteğine ekleyin.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Add session cookies
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123token"
renderer.RenderingOptions.CustomCookies("authToken") = "bearer-xyz"
' Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard")
pdf.SaveAs("dashboard.pdf")
HttpClient kullanarak kimlik doğrulaması yapmayı, ardından elde edilen çerezleri korumalı sayfayı görüntülemek için CustomCookies sözlüğüne aktarmayı düşünün.İLGİLİ NASIL YAPILIR Makalesi: Oturum Açma Kimlik Doğrulamasıyla HTML'yi PDF'ye Nasıl Dönüştürülür
4. Bulut Platformlarında HTML'den PDF'ye Nasıl Dağıtılır
Bulut ortamlarında HTML'den PDF'ye dönüştürme, başsız işleme, geçici dosya yolları ve kaynak tahsisi için özel yapılandırma gerektirir. Bu bölüm, IronPDF ile en yaygın bulut platformları ve konteynerize dağıtımları kapsar.
| Platform | Min Kaynaklar | Paket | Otomatik Konfigürasyon | Geçici Yol | Önemli Nokta |
|---|---|---|---|---|---|
| Azure Uygulama Hizmeti | B1 katman (Temel) |
IronPdf.Linux
|
true
|
/tmp | Ücretsiz/Paylaşılan katmanlar başarısız olur — GPU yok, düşük bellek |
| Azure Fonksiyonları (Windows) | B1 katman |
IronPdf
|
true
|
/tmp | 'Paket dosyasından çalıştır' seçeneğini kaldır |
| AWS Lambda | 512 MB / 330s zaman aşımı |
IronPdf.Linux
|
true
|
/tmp (gerekli) | Varsayılan dosya sistemi salt okunur |
| Docker (Ubuntu/Debian) | Görüntüye bağımlı |
IronPdf.Linux
|
false
|
Görüntü varsayılanı |
false olarak ayarla — Dockerfile bağımlılıklar ile ilgilenir
|
Azure Üzerinde Nasıl Dağıtılır
Azure Fonksiyonları veya Uygulama Hizmetine dağıtım yaparken, GPU hızlandırmasını devre dışı bırakın ve barındırma katmanınızın Chrome tabanlı işleme için yeterli belleği sağladığından emin olun. Bu ayarları, uygulamanın başlatılmasında, herhangi bir işleme çağrısından önce ekleyin.
Azure sanal alanları GPU erişimi olmadan çalışır ve Ücretsiz/Paylaşılan katmanlar (F1, D1) Chrome'un ihtiyaç duyduğu kaynaklardan yoksundur. B1 (Temel) katman veya üstünü hedefleyin.
using IronPdf;
// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesOtomatik Konfigürasyon = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
using IronPdf;
// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesOtomatik Konfigürasyon = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
Imports IronPdf
' Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>")
pdf.SaveAs("azure-report.pdf")
İLGİLİ BAŞLANGIÇ Kılavuzu: IronPDF'in Azure'a Nasıl Dağıtılacağı
AWS Lambda Üzerinde Nasıl Dağıtılır
AWS Lambda, Chrome tabanlı PDF işleme için Docker tabanlı dağıtım gerektirir. Varsayılan Lambda dosya sistemi salt okunurdur, bu nedenle tüm geçici ve dağıtım yolları /tmp'ye yönlendirilmelidir.
Bu ayarları, fonksiyon işleyicinizin en üstünde, herhangi bir işleme çağrısından önce yapılandırın.
using Amazon.Lambda.Co/re;
using IronPdf;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesOtomatik Konfigürasyon = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
using Amazon.Lambda.Co/re;
using IronPdf;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesOtomatik Konfigürasyon = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
Imports Amazon.Lambda.Core
Imports IronPdf
Public Class PdfFunction
Public Function FunctionHandler(input As String, context As ILambdaContext) As String
' Lambda's only writable directory
Dim tmpPath As String = "/tmp/"
IronPdf.Installation.TempFolderPath = tmpPath
IronPdf.Installation.CustomDeploymentDirectory = tmpPath
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
context.Logger.LogLine("Rendering PDF...")
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(input)
' Save to /tmp before uploading to S3 or returning
Dim outputPath As String = $"{tmpPath}output.pdf"
pdf.SaveAs(outputPath)
Return outputPath
End Function
End Class
İLGİLİ BAŞLANGIÇ Kılavuzu: IronPDF'in AWS Lambda'ya Nasıl Dağıtılacağı
Docker ile Nasıl Dağıtılır
Docker dağıtımları için, görüntü boyutunu küçültmek ve çalışma zamanı varlık indirmelerini önlemek amacıyla IronPdf.Linux NuGet paketini kullanın. Bu paket, konteynerize ortamlar için optimize edilmiş Linux yerel ikili dosyaları önceden içerir.
Dockerfile'ınız apt-get aracılığıyla Chrome'un paylaşılan kütüphane bağımlılıklarını zaten yüklüyorsa, LinuxAndDockerDependenciesOtomatik Konfigürasyon = false ayarını yapın. Çalışma zamanı otomatik kurulumu bu durumda gereksizdir ve izin hatalarına veya daha uzun soğuk başlangıçlara neden olabilir.
| Platform | Paket | Anahtar Yapılandırma |
|---|---|---|
| Ubuntu 22.04 / Debian |
IronPdf.Linux
|
Varsayılan — kutudan çıkar çıkmaz çalışır |
| Alpine Linux |
IronPdf.Linux
|
Dockerfile'da apk aracılığıyla chromium kur |
| Amazon Linux 2 |
IronPdf.Linux
|
LinuxAndDockerDependenciesOtomatik Konfigürasyon = true kullan
|
| Windows Konteynerleri |
IronPdf
|
Ek yapılandırma gerekmez |
Bir Ubuntu/Debian tabanlı görüntü için minimal çok aşamalı bir Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o /out
FROM mcr.microsoft.com/dotnet/aspnet:8.0
# Install Chrome dependencies for PDF rendering
RUN apt-get update && apt-get install -y \
libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 \
libcups2 libdrm2 libxkbcommon0 libxcomposite1 \
libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 \
libcairo2 libasound2 libxshmfence1 && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out .
ENTRYPOINT ["dotnet", "MyApp.dll"]
using IronPdf;
// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesOtomatik Konfigürasyon = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
using IronPdf;
// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesOtomatik Konfigürasyon = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
' Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
' No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>")
pdf.SaveAs("output.pdf")
İLGİLİ BAŞLANGIÇ Kılavuzu: Docker ile IronPDF Nasıl Kullanılır
5. IronPDF'i Diğer .NET PDF Kütüphaneleri ile Karşılaştırın
IronPDF, etkili Chromium tabanlı işleme motoru, sezgisel API'ları ve sık sık yapılan ürün geliştirmeleri nedeniyle birçok ekip için C# PDF oluşturma konusunda tercih edilen çözümdür. IronPDF'i diğer PDF dönüştürücülerle karşılaştıralım ve PDF oluşturma ihtiyaçlarınız için en iyi uyumu bulalım.
Hızlı Karar Matrisi: IronPDF ve Diğer .NET PDF Dönüştürücüler
| Çözüm | Ne zaman kullanılır | En iyi |
|---|---|---|
| IronPDF | Modern web sitelerini/HTML'yi tam görsel sadakat ile PDF'ye dönüştürme. | Güvenilir HTML işleme motoru, dinamik içerik ve profesyonel destek gerektiren kurumsal uygulamalar. |
| wkhtmltopdf | Güncel olmayan işleme kabul edilebilir olduğunda, kritik olmayan uygulamalarda basit HTML dönüştürme. | Eski HTML/CSS ile temel belge oluşturma. |
| Syncfusion | Syncfusion ekosistemine zaten yatırım yapılmışsa veya ücretsiz topluluk lisansı almaya hak kazanılmışsa. | Birden fazla Syncfusion bileşeni kullanan kuruluşlar. |
| Aspose.PDF | HTML işleme kalitesinin daha az kritik olduğu karmaşık PDF manipülasyonu. | HTML dönüştürmenin ötesinde kapsamlı PDF düzenleme özellikleri. |
İLGİLİ KARŞILAŞTIRMALAR:
Detaylı Karşılaştırma: IronPDF ve Diğer .NET PDF Dönüştürücüler
| Özellik | ★ Önerilen IronPDF | wkhtmltopdf | iText | Aspose.PDF | Syncfusion | Apryse | SelectPdf | Spire.PDF | PDFsharp | QuestPDF |
|---|---|---|---|---|---|---|---|---|---|---|
| İşleme ve Dönüştürme | ||||||||||
| İşleme Doğruluğu | Pikselle Mükemmel En İyi | Baskı Tarzı | Programlanabilir Yalnızca | İyi | İyi | İyi | İyi | Düşük Düzey | İşleme Yok | Kod-Öncelikli Düzen |
| HTML5 Desteği | Tam | Güncel Değil | Eklenti | Kısmi | Tam | Modül | Tam | Sınırlı | Hayır | Hayır (Kod-Öncelikli) |
| CSS3 Desteği | Tam | Sınırlı | Eklenti | Kısmi | Tam | Modül | Tam | Sınırlı | Hayır | Hayır (Kod-Öncelikli) |
| JavaScript Yürütme | Tam En iyi | Hayır | Hayır | Tartışmalı | Sınırlı | Sınırlı | Sınırlı | Çok Sınırlı | Hayır | Hayır |
| HTML→PDF (Modern Düzen) | Gömülü Chromium En İyi | Qt WebKit (Güncel Değil) | Ücretli Eklenti | Kısmi; JS Tartışmalı | Blink Motoru | Modül Gerektirir | Tam HTML→PDF | Görsel Tabanlı | Hayır | HTML İşlemcisi Değil |
| PDF→Görsel İşleme | Evet | Hayır | Evet | Evet | Evet | Evet | Hayır | Sınırlı | Hayır | Kendi Belgeleri Yalnızca |
| Belge İşlemleri | ||||||||||
| PDF'leri Programatik Olarak Oluşturma | Evet | Hayır | Evet | Evet | Evet | Evet | Yalnızca HTML | Evet | Temel | Evet (Akatıcı API) |
| Birleştirme, Bölme ve Yeniden Düzenleme | Evet | Hayır | Evet | Evet | Evet | Evet | Evet | Evet | Sınırlı | Evet |
| Üst Bilgiler / Alt Bilgiler / Sayfa Numaraları | HTML/Metin/Görsel En İyi | Sınırlı | Evet | Olaylar Aracılığıyla | Olaylar Aracılığıyla | Evet | Şablonlar | Elle | Yalnızca Elle | Birinci Sınıf Yuvalar |
| Filigranlar ve Damgalama | Metin & Görsel | Hayır | Evet | Evet | Evet | Evet | Evet | Sınırlı | Hayır | Evet (Kaplamalar) |
| PDF'lerden Metin Çıkarma | Evet | Hayır | Evet | Evet | Evet | Evet | Evet | Evet | Temel | Hayır |
| Taranmış PDF'ler için OCR | IronOCR ile Entegre | Hayır | Eklenti | Ayrı Ürün | Eklenti | Eklenti | Hayır | Geçici Çözüm | Hayır | Hayır |
| Güvenlik ve Uyumluluk | ||||||||||
| Dijital İmzalar | Evet | Hayır | Evet | Evet | Evet | Örnek Kod | Evet | Hayır | Hayır | Belgelendirilmemiş |
| PDF/A Uyum | Evet (PDF/A-3B) | Hayır | Tam PDF/A | Doğrula & Oluştur | Yerli SDK Gerektirir | PDF Uyumluluğu | Hayır | Evet | Sınırlı | PDF/A-2x & 3x |
| Platform ve Geliştirici Deneyimi | ||||||||||
| Çapraz Platform | Windows · Linux · macOS Hepsi 3 | İkili Dosyalara Bağlı | .NET Standard 2.0 | Linux Ekstra Kurulum | Blink + .NET Sunucu | Yerli SDK | Yalnızca Windows * | Sınırlı Linux Belgeleri | Windows Odaklı | Win/Linux/macOS |
| Bulut & Docker Dağıtım | Azure · AWS · Docker En İyi | Karmaşık; Eski | Birden Fazla Paket | Kısmi; Konteynerler | Blink Ekstralar Gerekli | Yerli Bağlı Dosyalar | Yalnızca Windows | Sınırlı Bilgi | Basit; Hafif | Docker/K8s; Yerel |
| Destek ve Dokümantasyon | ||||||||||
| Dokümantasyon | Kapsamlı + Kopyala/Yapıştır En İyi | Kısmi CLI Belgeleri | Kapsamlı; KB | Geniş; GitHub | Yardım Merkezi | Çok Dilli Katalog | Başlangıç Kılavuzları | Program Kılavuzu | Topluluk Rehberleri | Yapılandırılmış + Yardımcı Uygulama |
| Geliştirici Desteği | 24/7 Mühendisler En İyi | Sadece Topluluk | Abonelik Dâhil | Forum + Ücretli | 24/5 Direct-Trac | Ticari | E-posta | Forum + E-posta | Sadece Topluluk | Topluluk + GitHub |
| Lisanslama & Fiyatlandırma | ||||||||||
| Lisans Modeli | Süresiz | Açık Kaynak | AGPL / Abonelik | Süresiz | Yıllık Abonelik | Özel / Tüketim | Süresiz | Yıllık Abonelik | Ücretsiz (MIT) | MIT Ücretsiz / Ücretli Katmanlar |
| Başlangıç Fiyatı | $liteLicense Süresiz · 1 Geliştirici | style="color:#16a34a">Ücretsiz | ~45.000 $/yıl Özel Fiyat Teklifi | 1.175 $+ Geliştirici Başına | 995 $/yıl Abonelik · Ücretsiz <1 milyon dolar | ~9.000 $+/yıl Özel Fiyat Teklifi | 499 $+ Süresiz | 999 $/yıl Yıllık Abonelik | style="color:#16a34a">Ücretsiz | style="color:#16a34a">Ücretsiz Topluluk MIT <1 milyon dolar |
| Ücretsiz Deneme | 30 Gün · Tüm Özellikler Sınırsız | Geçerli Değil (Ücretsiz) | 30 Gün | Evet (Filigranlı) | Community <$1M Rev | Evet | Topluluk (5 Sayfa) | Ücretsiz (10 Sayfa) | Geçerli Değil (Ücretsiz) | N/A (MIT Free <$1M) |
| Fiyatlandırma Şeffaflığı | Yayınlanmış & Net En İyi | Açık Kaynak | Karmaşık AGPL | Birçok Katman | Teklif İçin İletişim | Yayınlanmış Fiyat Yok | Yayınlanmış | Yayınlanmış | MIT; Kısıtlama Yok | MIT; Güven Tabanlı |
Gerçek Hayat HTML'den PDF'ye Dönüşüm Karşılaştırması: Reddit Ana Sayfasının İşlenmesi
Çıkış PDF kalitesini değerlendirmek için, bu kütüphaneleri dinamik web içeriği, modern CSS, ve JavaScript HTML öğeleri içeren Reddit'in ana sayfasıyla test ettik. Bu sayfa çıkış PDF oluşturma için ideal bir test vakası olarak hizmet veriyor.

IronPDF

IronPDF, tüm dinamik web içeriğini, modern web yazı fontları stilini ve etkileşimli öğeleri Chrome'da gösterildiği gibi yalnızca birkaç satır kod ile koruyarak pixel-mükemmellikte sonuçlar sunar.
Syncfusion

Syncfusion, özellikle dinamik içerik olan bölümlerin çoğunu eksik bırakarak PDF'yi işledi. Başlangıçta Reddit'in güvenliği tarafından engellendi. Daha iyi sonuçlar elde etmek için kapsamlı komut satırı ayarlaması gerekli, ancak çıktı hala eksik kalıyor.
Aspose.PDF

Aspose.PDF, önce manuel HTML indirimi gerektirdi (doğrudan URL desteği yoktur). Dönüşümden sonra, çıktı uygun formatlama ve hemen hemen tüm içerik bölümlerini eksik bıraktı, bu da onu dinamik içerikle modern web için uygunsuz hale getirdi.
wkhtmltopdf

wkhtmltopdf hızla tamamlandı ancak canlı güncellemeler, dinamik öğeler ve etkileşimli bölümler gibi kritik içerik eksik, sade ve statik bir sayfa üretti. Bu, wkhtmltopdf'in modern, JavaScript tabanlı web siteleriyle uyumsuzluğunu gösteriyor.
Performans ve Çıkış PDF Kalitesi Üzerine Sonuç
.NET geliştiricileri için güvenilir bir HTML'den PDF'ye dönüştürücüye ihtiyaç duyanlar için IronPDF, minimal kod, kullanımı kolay API'ler ve sık ürün geliştirmeleri ile öne çıkıyor.
Gerçek dünya testinde web içeriği üzerinde en hızlı, en doğru sonuçları sunarken Syncfusion geride kaldı, Aspose ek adımlar gerektirdi ve wkhtmltopdf modern stil eksikliği yaşadı. IronPDF, bugün HTML'den PDF'ye dönüşüm iş akışları için hız, doğruluk ve basitliğin en iyi dengesini sunar.
Lütfen dikkat: Aspose, Syncfusion ve wkhtmltopdf kendi sahiplerinin tescilli markalarıdır. Bu site onlarla ilişkili veya onlar tarafından onaylanmamıştır. Tüm isimler, logolar ve markalar sahiplerine aittir ve karşılaştırmalar yazıldıkları tarihte mevcut olan halka açık bilgilere dayanmaktadır.
Özet
Bu kılavuz, .NET'te HTML'yi PDF'ye dönüştürmek için gereken her şeyi kapsıyor: temel dize dönüşümden, asenkron işlem, dijital imzalar ve toplu üretim gibi ileri düzey özelliklere kadar. Dinamik belge oluşturma için gerçek dünya testleriyle, temel yapılandırmalar, gelişmiş özellikler ve güvenlik ayarları ve diğer kütüphaneleri IronPDF ile karşılaştırarak üç dönüşüm yöntemi gösterdik.
Rakipler modern web siteleriyle mücadele ederken veya karmaşık çözümler gerektirirken, IronPDF minimal kod ve güçlü render motoru ile kusursuz sonuçlar verdi.
PDF iş akışınızı basitleştirmeye ve sadece birkaç satır kodla çok yönlü PDF üretimini deneyimlemeye hazır mısınız? NuGet Paket Yöneticisi aracılığıyla IronPDF'i yükleyin (veya Visual Studio'da Manage NuGet Paket seçin) ve ilk HTML'nizi bugün PDF'ye dönüştürün.
Üretim testi için 30 günlük ücretsiz denemenize başlayın filigransız. Esnek lisanslama, ihtiyaçlarınıza göre ölçeklenen şeffaf ekip fiyatlandırmasıyla $999'den başlar.
6. Sorun Giderme ve Teknik Destek
HTML'den PDF'ye dönüştürmede aşağıdaki hataları mı yaşıyorsunuz? IronPDF, https://ironpdf.com/ adresindeki sohbet widget'ı üzerinden 24/7 mühendis desteği sunar
Yaygın Hatalar Üzerinde Hızlı Çözümler
- İlk render yavaş mı? Normal. Chrome 2-3 saniyede başlatılır, sonra hızlanır.
- Bulut sorunları mı? En az Azure B1 veya eşdeğer kaynaklar kullanın.
- Eksik varlıklar? Temel yolları ayarlayın veya base64 olarak gömün.
- Eksik öğeler mi? JavaScript yürütmesi için
RenderDelayekleyin. - Bellek sorunu mu? HTML'den PDF'ye, damgalar ve başlık/alt başlıklar için düzeltmeler içeren v2025.9.4 sürümüne güncelleyin.
- Form alanı sorunları (örneğin, uzun metin alanları, onay kutuları)? v2025.7.17'de düzeltildi; onay kutuları için benzersiz isim sağlayın.
- Özel başlık/alt başlık kırpma veya özel karakter bozulması mı? v2025.8.8'de giderildi; kelime paketi ve meta verileri test edin.
IronPDF'i Geliştiren Mühendislerden 7/24 Yardım Alın
- Kapsamlı sorun giderme rehberi
- Performans optimizasyon stratejileri
- Mühendislik destek talepleri
- Hızlı sorun giderme kontrol listesi
Sonraki Adımlar
Sıkça Sorulan Sorular
C#'da HTML'i PDF'e nasıl dönüştürebilirim?
HTML, CSS3 ve JavaScript'i piksel mükemmelliğinde PDF'lere çeviren bir Chrome-rendering kütüphanesi kullanarak C#'da HTML'i PDF'e dönüştürebilirsiniz. İronPDF gibi araçlar, URL'lerden, HTML dizgelerinden veya dosyalardan render yapmanıza olanak tanır ve başlıklar, kimlik doğrulama ve yazdırma ayarlarını destekler.
En iyi HTML to PDF kütüphanesi .NET için hangisidir?
En iyi kütüphane, doğru Chrome renderına, çapraz platform yerleşimine ve kurumsal özelliklere destek sağlamalıdır. IronPDF, Windows, Linux, macOS ve Docker'da çalışarak güvenlik, imzalar, uyumluluk ve ölçeklenebilir .NET uygulamaları desteği ile bunların hepsini kapsar.
HTML dizgelerini C# kullanarak PDF'e nasıl dönüştürebilirim?
HTML dizgelerini PDF'e dönüştürmek için ChromePdfRenderer sınıfını ve RenderHtmlAsPdf yöntemini kullanın. HTML dizgenizi bu yönteme iletin, sonra PDF'i SaveAs kullanarak kaydedin.
C#'da bir web sayfası URL'sini PDF belgesine dönüştürme adımları nelerdir?
RenderUrlAsPdf yöntemini kullanarak bir web sayfası URL'sini doğrudan PDF'ye dönüştürebilirsiniz, bu sayede stilleri, görüntüleri ve formlar ile köprüler gibi etkileşimli öğeleri koruyabilirsiniz.
C# içinde bir HTML dosyasını PDF'ye nasıl dönüştürebilirim?
Yerel HTML dosyalarını PDF'e dönüştürmek için ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html") kullanın. IronPDF, tüm göreli varlık yollarını (görüntüler, CSS, JS) otomatik olarak çözer.
ASP.NET Razor Pages veya MVC Görünümlerini PDF'e nasıl dönüştürebilirim?
IronPDF, Razor Pages için IronPdf.Extensions.Razor ve MVC Görünümleri için IronPdf.Extensions.Mvc.Core adanmış uzantı paketleri sağlar. Controller'larınızdan doğrudan PDF'e dönüşüm sağlamak için bağımlılık enjeksiyonu ile RenderRazorToPdf veya RenderRazorViewToPdf kullanın. Razor rehberini inceleyin →
JavaScript içeriğinin PDF'te doğru şekilde işlenmesini nasıl sağlarım?
RenderingOptions.EnableJavaScript = true ayarını yaparak JavaScript işleme özelliğini etkinleştirin ve dinamik içeriğin dönüşümden önce tamamen yüklendiğinden emin olmak için RenderingOptions.WaitFor.RenderDelay kullanarak render gecikmesi ekleyin. WaitFor rehberini inceleyin →
C#'da bir PDF'e başlıklar ve altbilgiler eklemek için en iyi yöntem nedir?
Basit metin başlıkları ve altbilgileri için TextHeaderFooter sınıfını veya daha karmaşık HTML içeriği için HtmlHeaderFooter sınıfını kullanın. Otomatik içerik oluşturma için {page}, {total-pages} ve {date} gibi dinamik yer tutucular ekleyebilirsiniz. Başlıklar & altbilgiler rehberini inceleyin →
C# .NET'te PDF çıktısındaki sayfa kesmelerini nasıl yönetirim?
PDF'lerinizdeki sayfa kesmelerini, bir yazdırma medya türü CSS bloğu içinde page-break-after: always ve page-break-inside: avoid gibi CSS özelliklerini kullanarak kontrol edin. Sayfa kesmeleri rehberini inceleyin →
PDF'lerde kağıt boyutu ve yön belirlemek için hangi seçenekler mevcuttur?
Kağıt boyutunu RenderingOptions.PaperSize kullanarak ayarlayın (seçenekler A4, Letter, Legal vb. içerir) ve yönü RenderingOptions.PaperOrientation ile Dik veya Yatay olarak belirleyin. Milimetre veya inç cinsinden özel boyutlar da desteklenir. Kağıt boyutu rehberini inceleyin →
Kimlik doğrulamalı web sayfalarını PDF'e dönüştürebilir miyim?
Evet. IronPDF çerezler, özel HTTP başlıkları ve forma dayalı kimlik doğrulamayı destekler. Çerezleri ChromePdfRenderer.RenderingOptions.CustomCookies aracılığıyla ayarlayın veya bir token tabanlı kimlik doğrulama için oturum başlıkları iletin. Windows NTLM ve Kerberos kimlik doğrulaması da desteklenir. Çerezler rehberini inceleyin →
Tek bir HTML şablonundan birden fazla PDF oluşturabilir miyim?
Evet, yer tutucular içeren HTML şablonları oluşturun, ardından Handlebars.NET gibi dize değiştirme veya şablonlama kütüphaneleri kullanın. Yinelemeli verinizdeki yer tutucuları gerçek değerlerle değiştirdikten sonra RenderHtmlAsPdf ile PDF oluşturun.
Oluşturduğum PDF'leri şifre ile güvenli hale getirmek mümkün mü?
SecuritySettings özelliğini kullanarak, kullanıcı ve sahip parolaları belirleyebilir, yazdırma ve kopyalama gibi izinleri yapılandırabilir ve SecuritySettings.EncryptionAlgorithm ile AES256 şifrelemesi uygulayabilirsiniz. Şifreleme rehberini inceleyin →
HTML'den PDF/A uyumlu belgeler oluşturmak mümkün mü?
Evet. IronPDF, arşivleme ve erişilebilirlik uyumluluğu için PDF/A-1b, PDF/A-2b, PDF/A-3b ve PDF/UA standartlarını destekler, ki çoğu HTML to PDF dönüştürücüsü bunu sunmaz. PDF/A rehberini inceleyin →
Büyük hacimli PDF oluşturma performansını nasıl optimize ederim?
Engelleyici olmayan işlemler için RenderHtmlAsPdfAsync gibi eşzamansız yöntemler kullanarak performansı optimize edin. ChromePdfRenderer örneklerini yeniden kullanın, Task.WhenAll kullanarak birden fazla PDF'i eşzamanlı işleyin ve 64 bit sistemde yeterli sunucu kaynaklarına sahip olduğunuzdan emin olun. Aynı rehberi inceleyin →
Birden fazla PDF veya belgeye bir kapak sayfası eklemeyi nasıl yapabilirim?
Birden fazla PDF'i birleştirmek için PdfDocument.Merge statik yöntemini kullanın. Kapsamlı bir PDF oluşturmak için kapak sayfanızı ayrı olarak oluşturun ve ana belgeyle birleştirin. Birleştirme rehberini inceleyin →
IronPDF'i Azure, AWS veya Docker'de dağıtabilir miyim?
Evet. IronPDF, Azure App Service, Azure Functions, AWS Lambda ve Linux üzerindeki Docker konteynerlerinde çalışır. Her platform için özel kurulum rehberleri ve Docker görüntüleri mevcuttur. Azure rehberini inceleyin → · AWS rehberini inceleyin → · Docker rehberini inceleyin →
.NET 10 Uyumluluğu: IronPDF hemen .NET 10'u destekliyor mu?
Evet — IronPDF .NET 10 ile tamamen uyumludur. IronPDF sürüm notlarına göre, kütüphane .NET 10 projeleri için birinci günden itibaren hazırdır, ekstra yapılandırma gerektirmez. Web, konsol, masaüstü veya mikro servis uygulamaları kullansanız da, IronPDF .NET 10'da 'kutu dışı' çalışır.
IronPDF kullanmak ücretsiz mi?
IronPDF, geliştirme üzerinde tam işlevsellik ve filigran olmadan 30 günlük ücretsiz deneme sunar. Üretim kullanımı, 749 dolardan başlayan ticari lisans gerektirir. Lite, Plus, Professional ve Enterprise katmanları mevcuttur. Fiyatlandırmayı inceleyin →
Bu kütüphanenin render kalitesi, wkhtmltopdf gibi diğer seçeneklerle nasıl karşılaştırılır?
Bu kütüphane, wkhtmltopdf'un kullanımdan kalkmış WebKit motoru yerine modern bir Chrome işleme motoru kullanarak piksel mükemmelliğinde PDF'ler üretir. Sunucu çalıştırılabilir dosyaları gerektirmez, tam JavaScript/CSS3 destekler, düzenli güncellemeler alır ve profesyonel destek sunar.
HTML'den PDF'e dönüştürme için neden bu kütüphaneyi PDFSharp'a tercih etmeliyim?
PDFSharp yerleşik HTML'den PDF'e dönüştürme içermez ve karmaşık geçici çözümler gerektirir. Bu kütüphane, doğrudan HTML/URL/dosya dönüştürme, modern web teknolojileri desteği ve düzenli güncellemeler ile profesyonel destek sunan bir yüksek seviye API sunar. PDFSharp karşılaştırmasını inceleyin →
HTML dönüşümü için iTextSharp'tan daha iyi bir seçim yapan nedir?
iTextSharp'ın ücretsiz versiyonu yerel HTML'den PDF'e dönüşüm desteklemez ve karmaşık düşük seviye bir API'ye sahiptir. Bu kütüphane, sezgisel bir API ile kusursuz HTML dönüşümü, tam CSS3/JavaScript desteği ve AGPL lisans kısıtlamaları olmadan sunar. iTextSharp karşılaştırmasını inceleyin →
Bu kütüphanenin render kalitesi Aspose.PDF ile nasıl karşılaştırılır?
Bu kütüphane, Chrome kalitesinde piksel mükemmelliğinde PDF'ler üretir, oysa Aspose.PDF genellikle stilleri ve dinamik içeriği kaçırır. Aspose, URL dönüşümü için manuel HTML indirmeleri gerektirir ancak bu kütüphane URL'leri doğrudan ve üstün doğrulukla dönüştürür. Aspose karşılaştırmasını inceleyin →
Neden bu kütüphaneyi Syncfusion PDF'e tercih edebilirim?
Syncfusion yetenekli olsa da, bu kütüphanenin optimize edilmiş Chrome motoru daha hızlı performans gösterir ve dinamik içeriği daha etkili bir şekilde işler. OCR ve barkod üretimi gibi ek özellikler ve daha basit bir API sunar. Syncfusion karşılaştırmasını inceleyin →

