HTML'yi PDF'e C#'da Nasıl Dönüştürülür (Geliştirici Kılavuzu)
HTML'yi C#'da PDF'e dönüştürmek genellikle basit görünür, ancak gerçek dünya gereklilikleri ortaya çıkana kadar. Geliştiriciler hızla, oluşturma doğruluğunu, dağıtımı ve ölçeklenebilirliği etkileyen kısıtlamalarla karşılaşır.
Oluşturmanın ötesinde, altyapı uyumluluğu kritik hale gelir. Ekipler, PDF oluşturmanın modern .NET çalıştırılanları, bulut platformları ve kapsayıcılı ortamlar üzerinde performans kaybı olmadan çalışmasını sağlaymalıdır.
Bu boşlukları kapatmak için, IronPDF gibi modern Chrome tabanlı çözümler, daha yüksek render sadakati, daha geniş platform desteği ve üretime hazır dağıtım iş akışları sunar - bu kılavuzun geri kalanında adım adım incelenmiştir.
TL;DR: Hızlı Başlangıç Kılavuzu HTML'yi PDF'e Çevirme
C#'da kolayca HTML'yi PDF'ye IronPDF kütüphanesini kullanarak dönüştürebilirsiniz, bu kütüphane HTML, CSS ve JavaScript'tan yüksek kaliteli PDF dosyaları oluşturmak için ChromePdfRenderer.RenderHtmlAsPdf metodunu sağlar.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin
PM > Install-Package IronPdf -
Bu kod parçasını kopyalayıp çalıştırın.
IronPdf.ChromePdfRenderer .StaticRenderHtmlAsPdf("<p>Hello World</p>") .SaveAs("pixelperfect.pdf"); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronPDF kullanmaya başlayın ücretsiz deneme ile
IronPDF'i satın aldıktan veya 30 günlük deneme süresine kaydolduktan sonra e-posta adresinize gönderilen lisans anahtarını bulun. 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# için HTML'den PDF'e Çeviriciye İhtiyacı Neden Vardır
IronPDF, gömülü bir Google Chromium oluşturma 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 Oluşturma Motoru: Chrome'un Blink motoru, v2025.9.4 itibariyle bellek, formlar ve render doğruluğu için düzeltmeler ile artık geliştirilmiş doğru HTML-PDF dönüşümü sağlar.
✅ Piksel Doğruluğu: Üretilen PDF'ler doğrudan web ile tam uyumlu, yazıcı dostu bir versiyon değil. Son düzeltmeler, v2025.9.4 itibariyle özel başlık/altyazı kesmesi, gri tonlama metin koruması ve meta verilerdeki özel karakterler/emoji'ler için kapsar.
✅ Modern Web Desteği Tamamlandı: Tüm HTML elemanları için eksiksiz CSS3, HTML5, JavaScript desteği. Son geliştirmeler uzun metin alanları ve onay kutuları için form alanı işleme içerir.
✅ 5-20 kat Performans Artışı: Tarayıcı otomasyonu veya web sürücülerine göre önemli ölçüde daha hızlı, artık bellek sızıntısı düzeltmeleri ve toplu işlemlerde damga/başlık gibi tekrarlı öğeler için azaltılmış dosya boyutları ile.
✅ PDF/UA Uyumluluğu: Section 508 standartlarını karşılayan erişilebilir PDF oluşturma, platformlar arası (örneğin; Linux) form oluşturma için geliştirilmiştir.
✅ Harici Bağımlılık Yok: Sunuculara yüklenilecek çalıştırılabilir dosya gerektirmez
✅ .NET 10, 9, 8, 7, 6, Core, Standard veya Framework'te çalışan C#, F#, & VB.NET için tasarlanmıştır
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 doğrudan ve etkili bir çözüm sunar. Faturalardan ve raporlara, sertifikalardan ve arşivlere kadar, geliştiriciler, IronPDF'un birkaç satır kodla karmaşığı hallettiği tanıdık web yığını ile çalışabilirler.
RELATED: IronPDF Changelog: Updates, milestones, roadmap
Ne Öğreneceksiniz
-
Gelişmiş PDF Oluşturma ve Güvenlik Özellikleri Nasıl Kullanılır
- Toplu PDF Oluşturma için HTML Şablonu Nasıl Oluşturulur
- Asenkron Yöntem Kullanarak PDF Nasıl Oluşturulur
- Gelişmiş Güvenlik Özellikleri Nasıl Eklenir
- HTML Formlarını Doldurulabilir PDF'lere Nasıl Dönüştürülür
- Belirli HTML Elemanlarını PDF'e Nasıl Dönüştürülür
- Doğrulanmış Sayfalar PDF olarak Nasıl Oluşturulur
-
IronPDF ve Diğer .NET PDF Kütüphaneleri Arasında Karşılaştırma
- Sorun Giderme & Teknik Destek
1. How to Convert HTML to PDF C
İster HTML dizeleri, ister URL'ler, ister HTML dosyaları ile çalışıyor olun, IronPDF, belirli gereksinimlerinizi karşılayan yüksek kaliteli PDF belgeleri oluşturmak için esnek seçenekler sunar.
Bu eğitimde, HTML dizesinden PDF'ye, URL'den PDF'ye ve HTML dosyasından PDF'ye en yaygın senaryoları ele alacağız. Ayrıca, IronPDF, PDF belgelerini işlemek için çeşitli işlemler de sağlar:
HTML Dizesini PDF'e Nasıl Dönüştürülür
En temel işlem HTML dizesinden PDF'e dönüştürmedir. Bu yöntem, dinamik olarak üretilen HTML içeriği için mükemmeldir. RenderHtmlAsPdf metodu, HTML'yi dogrudan PDF'ye dönüştürdugunuzde HTML5, CSS3, JavaScript ve resimleri tamamen 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")
HTML stringiniz yerel varliklari, resimler veya stil dosyalari gibi referans gösterdiginde, tüm kaynaklarla HTML icerigini dogru sekilde dönüştürmak icin BaseUrlPath parametresini kullanin.
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")
RELATED HOW-TO ARTICLE: How to Convert HTML String to PDF in C#
Varolan URL'yi PDF'e Nasıl Aktarılır
C# ile tüm web sayfalarını PDF'e oluşturmak, ekiplerin PDF tasarımını ve arka uç oluşturma işlerini ayırmasını sağlar. Bu yaklaşım, belirtilen herhangi bir URL'yi doğrudan PDF formatına dönüştürmenize izin verir.
Baskı ve Ekran CSS
IronPDF'u, herhangi bir CSS medya türünü kullanarak render yapacak şekilde yapılandırabilirsiniz.
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üştürürken JavaScript, jQuery ve hatta AJAX'i tamamen destekler. Dinamik HTML içeriği için IronPDF'i, web sayfalarını PDF'ye render etmeden önce JavaScript tamamlanmasını bekleyecek şekilde yapılandırabilirsiniz. Bu, tek sayfalık uygulamalar ve dinamik web siteleri için mükemmeldir.
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ütmesi, bir web sayfasından PDF formatına bir d3.js chord grafiği render edilirken 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ı bir tarayıcı içinde görüntülenmek üzere tasarlandığı için ve IronPDF sunucunuzun işletim sisteminde gerçek bir tarayıcı penceresi açmadığı için hassas HTML ögeleri en küçük boyutlarında görüntülenebilir. Bütün web sayfalarını render ederken 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
```
RELATED HOW-TO ARTICLE: How to Render URL to PDF
HTML Dosyasını PDF'ye Nasıl Dönüştürürsünüz
Yerel HTML dosyalarını PDF'ye dönüştürmek, CSS, resimler ve JavaScript gibi tüm göreli varlıkları, file:// protokolü kullanılarak açılmış gibi saklar. Bu HTML'den PDF'e yöntem, şablonları veya önceden tasarlanmış HTML sayfalarını PDF belgelerine dönüştürmek için en iyisidir.
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
RELATED HOW-TO Article: Render HTML File to PDF
Razor Sayfaları PDF'ye Nasıl Dönüştürülür
ASP.NET Core projeniz zaten Razor Sayfaları kullanıyorsa, HTML'inizi yeniden oluşturmadan doğrudan PDF'ye dönüştürebilirsiniz. IronPDF'in Razor uzantısı, .cshtml sayfanızı — modeli ve düzeni ile birlikte — alır ve tek bir çağrıda PDF belgesi olarak render eden RenderRazorToPdf metodunu ekler.
PM > Install-Paket IronPdf.Extensions.Razor
PM > Install-Paket IronPdf.Extensions.Razor
using IronPdf;
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;
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
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")
RELATED HOW-TO Article: How to Convert CSHTML to PDF in Razor Pages
MVC Görünümlerini PDF'ye Nasıl Dönüştürürsünüz
MVC modelini kullanan takımlar, mevcut Görünümleri ve denetleyicilerinden doğrudan PDF üretebilir. MVC Core uzantı paketini kurun, daha sonra gorunüm yolunuzla ve modelinizle RenderRazorViewToPdf cagirin — IronPDF Razor işleme boru hattini yonetir ve bitmis bir PDF cikari.
Bu, özellikle raporlar, faturalar ve tarayıcıda tasarlanmış ve test edilmiş HTML içeren herhangi bir sayfa için faydalıdır. Oluşturulan PDF, düzen sayfaları ve kısmi görünümleri de içeren, tam Görünüm çıktısını korur.
PM > Install-Paket IronPdf.Extensions.Mvc.Core
PM > Install-Paket IronPdf.Extensions.Mvc.Core
Oncelikle, kontrolleriniz icin IRazorViewRenderer servisini Program.cs icinde kaydedin, boylece enjeksiyon yapabilirsiniz:
using IronPdf.Extensions.Mvc.Core;
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.Core;
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 ediciyi enjekte edin ve herhangi bir Görünümü PDF'ye dönüştürün:
using IronPdf;
using IronPdf.Extensions.Mvc.Core;
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.Core;
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
Dim renderer As 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")
RELATED HOW-TO Article: How to Convert Views to PDF in ASP.NET Core MVC
2. HTML'den PDF'ye Ayarları Nasıl Yapılandırırsınız
PDF dokümanlarını manipüle etme konusunda, IronPDF, üretilen PDF'ler için ChromePdfRenderer.RenderingOptions özelliği aracılığıyla kapsamlı özelleştirmeler sunar.
| Ayarlar | Açıklama | Örnek |
|---|---|---|
| Kağıt Boyutu | Mevcut PDF'ler için sayfa boyutlarını ayarlayın (A4, Letter, Legal, vb.) | `PdfPaperSize.A4` |
| Kağıt Yönü | Mevcut PDF'ler için Dikey veya Yatay ayarlayın | `PdfPaperOrientation.Landscape` |
| Üst/Alt/Sol/Sağ Kenar Boşluğu | Sayfa kenar boşluklarını milimetre cinsinden ayarlayın (varsayılan: 25mm) | |
| CssMedyaTürü | HTML'den PDF'ye Ekran veya Yazdırma CSS'i | `PdfCssMediaType.Print` |
| Arka Planları Yazdır | Arka plan renklerini/resimlerini dahil edin (varsayılan: true) | true |
| JavaScript'i Etkinleştir | HTML içeriğini render etmeden önce JavaScript çalıştırın | true |
| RenderGeikmesiniBekle | 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ğini görmek 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 YAPILIR MAKALALARI:
| PDF Dönüştürmeyi Özelleştirin | PDF Düzenini İyileştirin |
|---|---|
Özel HTTP Başlıkları, Çerezler ve Giriş Bilgileri Nasıl Ayarlanır
Kimlik doğrulaması gerektiren veya belirli istek meta verilerini gerektiren URL'leri render ederken, IronPDF, istekle birlikte giriş bilgileri, oturum çerezleri ve HTTP başlıklarını dahil etmenize izin verir. Bu, dahili panoların, kısıtlanmış raporların veya API tarafından oluşturulan sayfaların doğrudan PDF'ye render edilmesine olanak tanır, böylece HTML'i ayrıca alma gereği yoktur.
Basit veya NTLM kimlik doğrulaması için, renderer üzerine bir LoginCredentials nesnesi ayarlayın. Token bazlı veya oturum bazlı erişim için, RenderUrlAsPdf çağırmadan önce çerezleri ve başlıkları RenderingOptions üzerinden geçin.
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.company.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.company.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.company.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
İLGİLİ NASIL YAPILIR MAKALALARI: Render PDFs Behind Login Authentication | Custom HTTP Request Headers
PDF Render Etme için Proxy Nasıl Yapılandırılır
Kurumsal proxy arkasında harici kaynaklar yükleyen HTML'yi render ederken, proxy adresini RenderHtmlAsPdf() üzerinde üçüncü parametre olarak geçin. Bu bir metod parametresidir, ChromePdfRenderOptions üzerinde bir özellik değildir — bu nedenle renderer örneğinde değil, her render çağrısı başına ayarlanır.
Kimlik doğrulamalı proxyler için http://user:pass@host:port formatını kullanarak kimlik bilgilerini doğrudan URL'ye sapla. Şifrelerdeki özel karakterleri Uri.EscapeDataString() ile URL-encode edin.
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.corp.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.corp.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.corp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
RenderUrlAsPdf() bir proxy parametresi kabul etmez özelliğinin farkında olun. Bir proxy arkasında canlı URL'yi render etmek için, ilk olarak HTML'yi HttpClient kullanarak bir WebProxy ile alın, sonra bunları ögeleri yüklemek için proxy parametresi ile RenderHtmlAsPdf()'e geçirin.
RELATED HOW-TO Article: How to Configure Proxy Servers for PDF Rendering
3. Gelişmiş PDF Oluşturma ve Güvenlik Özellikleri Nasıl Kullanılır
Gelişmiş şablonlama, asenkron işlemler ve güvenlik özellikleri ile HTML'den PDF'e dönüşüm için kurumsal seviyedeki yetenekleri açığa çıkarın. Bu PDF manipülasyon yöntemleri, büyük ölçekte PDF belgeleri oluşturmanıza, hassas PDF dosyalarını korumanıza ve HTML'yi profesyonel PDF formatına dönüştürdüğünüzde belge güvenilirliğini sağlamanıza olanak tanır.
Yığın PDF Oluşturma için HTML Şablonu Nasıl Oluşturulur
Temel Yığın PDF Oluşturma
Yığın PDF oluşturma, birden fazla kişiselleştirilmiş PDF belgesini verimli bir şekilde oluşturmak için gereklidir. Temel senaryolar icin, C#'da String.Format metodu basit PDF manipülasyonu icin en iyi sekilde calisir.
// 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>
PDF belgeleri oluşturmanız gerektiğinde, daha uzun şablonlar için HTML içeriğinizdeki yer tutucu değiştirmeleri 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");
}
// 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");
}
' 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
Donguler ve kosullular iceren karmasik sablonlar icin HTML'yi PDF'ye dönüştürurken, dinamik HTML icerigi ile PDF dokümanlari oluşturmak icin Handlebars.NET ile gelişmiş sablonlama kullanin.
# 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.Compile(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.Compile(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")
RELATED HOW-TO ARTICLE: Learn more about Handlebars.NET on GitHub
PDF Sayfa Kırılımlarını Kontrol Et:
Oluşturulan PDF belgelerindeki sayfa numaralandırmasını yönetmek, HTML parçacıklarını dönüştürdüğünüzde profesyonel, okunabilir düzenler sağlar. PDF dosyalarınızda sayfaları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 Metot Kullanarak PDF Nasıl Oluşturulur
IronPDF, HTML'den PDF'e dönüştürme gereksinimlerinizi geniş ölçekte karşılamak için tam asenkron ve çok iş parçacıklı destekle kurumsal seviye performans sunar.
using IronPdf;
using System.Threading.Tasks;
// 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.Threading.Tasks;
// 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.Threading.Tasks
' 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
- Optimum PDF oluşturma performansı için 64-bit sistemler kullanın.
- PDF belgeleri oluşturduğunuzda yeterli sunucu kaynağı sağlayın (yetersiz güçlendirilmiş ücretsiz katmanlardan kaçının)
- HTML içeriğindeki karmaşık JavaScript için yeterli RenderDelay sağlayın.
- Mümkün olduğunda
ChromePdfRendererörneklerini tekrar kullanın. - Arka/ara işlemler için v2025.9.4 hafıza düzeltmelerinden faydalanarak kaynak kullanımını azaltın; yenilenen özel başlıklar/altlıklarla azalan dosya boyutlarını test edin.
RELATED HOW-TO Article: How to Generate PDFs with Async and Multithreading
Gelişmiş Güvenlik Özellikleri Nasıl Eklenir
.NET'te PDF Dosyalarına Parola Koruması Nasıl Eklenir
HTML içeriğini korumalı PDF formatına dönüştürdüğünüzde 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ı oluştururken PDF belgesinin ö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")
RELATED HOW-TO Article: Digitally Signing PDF Documents with C#
HTML Formlarını Doldurulabilir PDF'lere Nasıl Dönüştürülür
Standart HTML form öğelerini etkileşimli, doldurulabilir PDF form alanlarına dönüştürmek için CreatePdfFormsFromHtml render seçeneğini etkinleştirin. Bu, oluşturulan PDF belgesindeki 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")
HTML'nizdeki her form alani benzersiz bir name niteliğine sahip olmalıdır. Yinelenen adlar, kullanıcılar formu doldurduğunda beklenmeyen davranışlara yol açarak oluşturulan PDF'de alanların aynı değeri paylaşmasına neden olur.
RELATED HOW-TO Article: How to Create Fillable PDF Forms in C#
Belirli HTML Öğelerini PDF'ye Nasıl Dönüştürülür
Tam belge yerine bir sayfanın belirli bir bölümünü render etmek istiyorsanız, render işleminden önce hedef öğeyi izole edin. En doğrudan yaklaşım, belge gövdesini hedef elemanın içeriği ile değiştirmek için JavaScript render seçeneğini kullanır, ve WaitFor.HtmlQuerySelector() onu çıkarmadan önce elemanın varlığını sağlamak için birleşir. Aşağıdaki kod parçacığı document.head korur, böylece stil dosyaları ve yazıtipleri taşınır, — bu adım olmadan, atalar seçiciye dayanan CSS kuralları çıkartılan PDF'de kaybedilir.
Ham HTML'ye erişiminiz olduğu sunucu-tarafı senaryolar için, AngleSharp gibi bir parser kullanarak hedef parçacığı çıkartın ve RenderHtmlAsPdf()'e geçirin — JavaScript çalıştırma gerekmez.
using IronPdf;
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;
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
Dim 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)
Dim pdf = renderer.RenderHtmlAsPdf(fullPageHtml)
pdf.SaveAs("invoice-summary.pdf")
RELATED HOW-TO Article: How to Convert HTML Elements and Partial Pages to PDF
Kimlik Doğrulamalı Sayfaları PDF'ye Nasıl Render Edilir
Kimlik doğrulama arkasındaki sayfaları render etmek için üç mekanizma vardır: ağ giriş bilgileri, özel çerezler ve HTTP isteği başlıkları. Bu, korunan web içeriğini PDF'ye dönüştürürken en yaygın kimlik doğrulama senaryolarını kapsar.
Giriş Bilgileri
Korumalı URL'leri PDF'ye dönüştürürken temel, digest 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.company.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.company.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.company.com/reports")
pdf.SaveAs("authenticated-report.pdf")
Çerezler ve HTTP Başlıkları
Token tabanlı veya oturum tabanlı kimlik doğrulaması için özel çerezleri ve HTTP başlıklarını render isteğine doğrudan 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")
HTML form tabanlı girişler (POST kullanıcı adı/parola) için öncelikle HttpClient kullanarak kimlik doğrulamayı düşünün, daha sonra elde edilen çerezleri korumalı sayfanın render edilmesi için CustomCookies sözlük objesine geçirin.
RELATED HOW-TO Article: How to Convert HTML Behind Login Authentication to PDF
4. HTML'yi PDF'ye Bulut Platformlarında Nasıl Dağıtılır
Bulut ortamlarında HTML'den PDF'ye dönüştürme işlemi, başsız render, geçici dosya yolları ve kaynak tahsisi için özel konfigürasyon gerektirir. Bu bölüm, IronPDF ile en yaygın bulut platformlarını ve konteynerleşmiş dağıtımları kapsar.
| Platform | Min Kaynaklar | Paket | OtoKonfig | Temp Yol | Anahtar Dikkat |
|---|---|---|---|---|---|
| Azure Uygulama Hizmeti | B1 katmanı (Basic) | IronPdf.Linux |
true
|
/tmp | Ücretsiz/Paylaşılan katmanlar başarısız oluyor — GPU yok, düşük bellek |
| Azure İşlevler (Windows) | B1 katmanı | IronPdf |
true
|
/tmp | "Paket dosyasından Çalıştır" işaretini kaldırın |
| AWS Lambda | 512 MB / 330s zaman aşımı | IronPdf.Linux |
true
|
/tmp (gereklidir) | Varsayılan dosya sistemi salt okunurdur |
| Docker (Ubuntu/Debian) | Görüntüye bağımlı | IronPdf.Linux |
false
|
Görüntü varsayılan |
Set false — Dockerfile eklentileri ile ilgilenir
|
Azure'de Nasıl Dağıtılır
Azure İşlevleri veya Uygulama Hizmetine dağıtırken, GPU hızlandırmayı devre dışı bırakın ve barındırma katmanınızın Chrome tabanlı render için yeterli bellek sağladığından emin olun. Uygulama başlangıcında, herhangi bir render çağrısından önce bu ayarları ekleyin.
Azure kum havuzları GPU erişimi olmaksızın başsız çalışır ve Ücretsiz/Paylaşılmış katmanlar (F1, D1) Chrome'un gerektirdiği kaynaklardan yoksundur. B1 (Basic) katmanı veya daha yükseğini 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.LinuxAndDockerDependenciesOtoKonfig = 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.LinuxAndDockerDependenciesOtoKonfig = 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.LinuxAndDockerDependenciesOtoKonfig = True
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>")
pdf.SaveAs("azure-report.pdf")
RELATED GET-STARTED Guide: How to Deploy IronPDF on Azure
AWS Lambda Üzerinde Nasıl Dağıtılır
Chrome tabanlı PDF render için AWS Lambda Docker tabanlı dağıtım gerektirir. Varsayılan Lambda dosya sistemi salt okunur olduğundan, tüm geçici ve dağıtım yolları /tmp'ye yöneltilmelidir.
Bu ayarları, herhangi bir render çağrısından önce fonksiyon işleyicinizin en üstüne konfigüre edin.
using Amazon.Lambda.Core;
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.LinuxAndDockerDependenciesOtoKonfig = 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.Core;
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.LinuxAndDockerDependenciesOtoKonfig = 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.LinuxAndDockerDependenciesOtoKonfig = 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
RELATED GET-STARTED Guide: How to Deploy IronPDF on AWS Lambda
Docker ile Nasıl Dağıtılır
Docker dağıtımları için, imaj boyutunu azaltmak ve çalışma zamanı varlık indirmelerinden kaçınmak için IronPdf.Linux NuGet paketini kullanın. Bu paket, konteynerleşmiş ortamlar için optimize edilmiş önceden paketlenmiş Linux yerel ikili dosyalarını içerir.
Dockerfile'iniz halihazırda Chrome'un paylaşımlı kütüphaneye olan bağımlılıklarını apt-get ile yüklediğinde LinuxAndDockerDependenciesOtoKonfig = false ayarlayın. Bu durumda çalışma zamanı otomatik kurulum gereksizdir ve izin hatalarına veya daha uzun soğuk başlatmalara neden olabilir.
| Platform | Paket | Anahtar Konfigürasyon |
|---|---|---|
| Ubuntu 22.04 / Debian | IronPdf.Linux | Varsayılan — kutudan çıkar çıkmaz çalışır |
| Alpine Linux | IronPdf.Linux | Dockerfile'da chromium'u apk ile yükleyin |
| Amazon Linux 2 | IronPdf.Linux |
LinuxAndDockerDependenciesOtoKonfig = true kullanın
|
| Windows Containers | IronPdf | Ek konfigürasyon gerekmez |
Ubuntu/Debian tabanlı bir görüntü için minimal çoklu aşamalı 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.LinuxAndDockerDependenciesOtoKonfig = 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.LinuxAndDockerDependenciesOtoKonfig = 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")
RELATED GET-STARTED Guide: How to Use IronPDF with Docker
5. IronPDF ve Diğer .NET PDF Kütüphanelerini Karşılaştırın
IronPDF, güçlü Chromium destekli render motoru, sezgisel API'leri ve sık sık yapılan ürün iyileştirmeleri sayesinde C# PDF oluştururken birçok ekip için tercih edilen çözümdür. PDF oluşturma ihtiyaçlarınız için en uygun olanı bulmak amacıyla IronPDF'i diğer PDF dönüştürücülerle karşılaştıralım.
Hızlı Karar Matrisi: IronPDF vs Diğer .NET PDF Dönüştürücüler
| Çözüm | Ne zaman kullanılır | En uygun |
|---|---|---|
| IronPDF | Modern web sitelerini/HTML'yi PDF'ye tam görsel uyumlulukla dönüştürmek. | Güvenilir HTML render motoru gerektiren, dinamik içerikli ve profesyonel destek sunan Enterprise uygulamaları. |
| wkhtmltopdf | Güncel olmayan render'ın kabul edilebilir olduğu kritik olmayan uygulamalarda basit HTML çevirisi. | Eski HTML/CSS ile temel belge oluşturma. |
| Syncfusion | Zaten Syncfusion ekosistemine yatırım yapılmışsa veya ücretsiz topluluk lisansı almaya uygunsa. | Birden fazla Syncfusion bileşeni kullanan organizasyonlar. |
| Aspose.PDF | HTML render kalitesinin daha az önemli olduğu karmaşık PDF manipülasyonu. | HTML dönüşümün ötesinde kapsamlı PDF düzenleme özellikleri. |
İLGİLİ KARŞILAŞTIRMALAR:
Ayrıntılı Karşılaştırma: IronPDF ile Diğer .NET PDF Dönüştürücüler
| Özellik | ★ Tavsiye EdilenIronPDF | wkhtmltopdf | iText 7 | Aspose.PDF | Syncfusion | Apryse | SelectPdf | Spire.PDF | PDFsharp | QuestPDF |
|---|---|---|---|---|---|---|---|---|---|---|
| Rendering & Conversion | ||||||||||
| Render Doğruluğu | Piksel Mükemmel En İyi | Baskı Tarzı | Sadece Programatik | İyi | İyi | İyi | İyi | Düşük Seviye | Render 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 Çalıştırma | Tam En İyi | 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örüntü Tabanlı | Hayır | HTML Yorumlayıcı Değil |
| PDF→Görüntü Render | Evet | Hayır | Ayrı Modül | Ayrı Ürün | Evet | Evet | Hayır | Sınırlı | Hayır | Sadece Kendi Belgeleri |
| Belge İşlemleri | ||||||||||
| Programatik Olarak PDF'ler Üret | Evet | Hayır | Evet | Evet | Evet | Evet | Sadece HTML | Evet | Temel | Evet (Akıcı API) |
| Merge, Split & Rearrange | Evet | Hayır | Evet | Evet | Evet | Evet | Evet | Evet | Sınırlı | Evet |
| Başlıklar / Alt Bilgiler / Sayfa Numaraları | HTML/Metin/Görüntü En İyi | Sınırlı | Evet | Etkinlikler Üzerinden | Etkinlikler Üzerinden | Evet | Şablonlar | Manuel | Sadece Manuel | Birinci Sınıf Yuvalar |
| Watermarks & Stamping | Metin & Görüntü | Hayır | Evet | Evet | Evet | Evet | Evet | Sınırlı | Hayır | Evet (Kaplamalar) |
| PDF'lerden Metin Çıkar | Evet | Hayır | Evet | Evet | Evet | Evet | Evet | Evet | Temel | Hayır |
| Taralı 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 |
| Security & Compliance | ||||||||||
| Dijital İmzalar | Evet | Hayır | Evet | Evet | Evet | Örnek Kod | Evet | Hayır | Hayır | Belgelendirilmemiş |
| PDF/A Uyumluluğu | Evet (PDF/A-3B) | Hayır | Tam PDF/A | Doğrula & Yarat | Yerel SDK Gerektiriyor | PDFAUyumluluk | Hayır | Evet | Sınırlı | PDF/A-2x & 3x |
| Platform & Developer Experience | ||||||||||
| Çapraz Platform | Windows · Linux · macOS Tüm 3'ü | İkili Dosyalara Bağlı | .NET Standard 2.0 | Linux Ekstra Kurulum | Blink + .NET Sunucu | Yerel SDK | Sadece Windows * | Kısıtlı Linux Belgeleri | Windows Odaklı | Win/Linux/macOS |
| Cloud & Docker Deploy | Azure · AWS · Docker En İyi | Karmaşık; Eski | Birden Fazla Paket | Kısmi; Konteynerler | Blink Ekstralar Gerekli | Yerel Bağımlılıklar | Sadece Windows | Kısıtlı Bilgi | Basit; Hafif | Docker/K8s; Yerel |
| Support & Belgelendirme | ||||||||||
| Belgelendirme | Kapsamlı + Kopyala/Yapıştır En İyi | Kısmi CLI Belgeleri | Kapsamlı; Bilgi Bankası | Geniş; GitHub | Yardım Merkezi | Çapraz Dil Kataloğu | Başlangıç Kılavuzları | Program Kılavuzu | Topluluk Kılavuzları | Yapılandırılmış + Eşlik Eden Uygulama |
| Geliştirici Desteği | 7/24 Mühendisler En İyi | Sadece Topluluk | Abonelik Dahildir | Forum + Ücretli | 24/5 Doğrudan İzleme | Ticari | E-posta | Forum + E-posta | Sadece Topluluk | Topluluk + GitHub |
| Licensing & Pricing | ||||||||||
| 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ı | 9Süresiz · 1 Geliştirici | style="color:#16a34a">Ücretsiz | ~$45K/yrÖzel Teklif | $1,175+Geliştirici Başına | $995/yrAbonelik · Ücretsiz <$1M | ~$9K+/yrÖzel Teklif | $499+Süresiz | $999/yrYıllık Abonelik | style="color:#16a34a">Ücretsiz | style="color:#16a34a">ÜcretsizTopluluk MIT
|
| Ücretsiz Deneme | 30 Gün · Tam Özellikli Sınırsız | N/A (Ücretsiz) | 30 Gün | Evet (Filigranlı) | Community <$1M Rev | Evet | Topluluk (5 Sayfa) | Ücretsiz (10 Sayfa) | N/A (Ücretsiz) | N/A (MIT Free <$1M) |
| Fiyat Şeffaflığı | Yayınlanmış & Açık En İyi | Açık Kaynak | Karmaşık AGPL | Birçok Katman | Teklif İçin İletişime Geçin | Yayınlanmış Fiyat Yok | Yayınlanmış | Yayınlanmış | MIT; Kısıtlama Yok | MIT; Güven Tabanlı |
Gerçek Hayat HTML to PDF Dönüşüm Karşılaştırması: Reddit Ana Sayfasının İşlenmesi
Çıktı 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ı üzerinde test ettik. Bu sayfa, çıktı PDF üretimi için ideal bir test vakasıdır.

IronPDF

IronPDF, tüm dinamik web içeriğini, modern web yazı tipi stilini ve etkileşimli öğeleri tam olarak Chrome'da görüntülendiği gibi sadece birkaç satır kodda muhafaza ederek pikselli mükemmellikte sonuçlar sunar.
Syncfusion

Syncfusion, özellikle dinamik içerik olmak üzere birçok bölüm ve stilin eksik olduğu bir PDF oluşturdu. Başlangıçta Reddit'in güvenliği tarafından engellendi. Daha iyi sonuçlar elde etmek için geniş kapsamlı komut satırı ayarı gerektirirken, çıktılar tamamlanmamış kaldı.
Aspose.PDF

Aspose.PDF, önce manuel HTML indirimi gerektirdi (doğrudan URL desteği yoktu). Dönüştürmeden sonra, çıktı doğru biçimlendirmeye sahip değildi ve neredeyse tüm içerik bölümlerini kaçırdı, bu da modern web için uygun hale getirmedi.
wkhtmltopdf

Wkhtmltopdf hızlı tamamlandı ancak canlı güncellemeler, dinamik öğeler ve etkileşimli bölümler gibi kritik içerikleri kaçıran düz bir statik sayfa üretti. Bu, wkhtmltopdf'nin modern, JavaScript odaklı web siteleri ile uyumsuzluğunu gösteriyor.
Performans ve Çıktı PDF Kalitesi Üzerine Sonuç
.NET geliştiricileri için güvenilir bir HTML'den PDF'e dönüştürücü gerekiyorsa, IronPDF minimal kod, kullanımı kolay API'ler ve sık ürün iyileştirmeleri ile öne çıkıyor.
Gerçek dünyada web içeriği üzerinde yapılan bir testte, en hızlı ve en doğru sonuçları sunarken, Syncfusion geride kaldı, Aspose ek adımlar gerektirdi ve wkhtmltopdf modern stillemeyi kaçırdı. IronPDF, günümüzün HTML'den PDF'e dönüşüm iş akışları için hız, doğruluk ve sadeliğin en iyi dengesini sunar.
Lütfen dikkat edin: Aspose, SyncFusion ve wkhtmltopdf kendi sahiplerinin ticari markalarıdır. Bu site, onlarla bağlantılı veya onlar tarafından onaylanmış değildir. Tüm isimler, logolar ve markalar sahiplerine aittir ve karşılaştırmalar yazım anında kamuya açık bilgilere dayanmaktadır.
Özet
Bu kılavuz, .NET'te HTML'yi PDF'e dönüştürmek için gereken her şeyi kapsadı: temel dize dönüştürmeden asenkron işlem, dijital imzalar ve toplu üretim gibi ileri düzey özelliklere kadar. Üç dönüşüm yöntemini, temel yapılandırmaları, ileri düzey özellikleri ve güvenlik ayarlarını gösterdik ve gerçek dünya testleriyle dinamik belge üretimi için IronPDF'yi diğer kütüphanelerle karşılaştırdık.
Rekabetçiler modern web siteleriyle mücadele ederken veya karmaşık geçici çözümler gerektirirken, IronPDF minimal kod ve güçlü bir render motoru ile kusursuz sonuçlar sağladı.
PDF iş akışınızı sadeleştirmeye ve sadece birkaç satır kodla çeşitli PDF oluşturma deneyimi yaşamaya hazır mısınız? NuGet Paket Yöneticisi aracılığıyla IronPDF'yi yükleyin (veya Visual Studio'da NuGet Paket Yönetimini seçin) ve bugün ilk HTML'den PDF'e dönüşümünüzü gerçekleştirin.
30 günlük ücretsiz denemenize başlayın üretim testi için filigran olmadan. Esnek lisanslama $799 ile başlar ve ihtiyaçlarınıza uygun şekilde ölçeklenen şeffaf takım fiyatlandırması sunar.
6. Sorun Giderme & Teknik Destek
HTML'den PDF'e dönüştürme sırasında aşağıdaki hatalarla mı karşılaşıyorsunuz? IronPDF, https://ironpdf.com/ adresindeki sohbet widget'ı aracılığıyla 24/7 mühendis desteği sunar
Ortak Hatalar İçin Hızlı Çözümler
- İlk işlem yavaş mı? Normal. Chrome 2-3 saniyede başlar, sonra hızlanır.
- Bulut sorunları mı? En az Azure B1 veya eşdeğer kaynakları kullanın.
- Eksik varlıklar mı? Temel yolları ayarlayın veya base64 olarak gömün.
- Eksik öğeler mi? JavaScript yürütme için RenderDelay ekleyin.
- Render bellekte mi? HTML'den PDF'e, damgalar ve üstbilgi/altbilgilerdeki düzeltmeler için sürüm v2025.9.4'e güncelleyin.
- Form alanı sorunları (ör. uzun metin alanları, onay kutuları)? Sürüm v2025.7.17'de düzeltildi; onay kutuları için benzersiz isimler kullandığınızdan emin olun.
- Özel başlık/altbilgi kırpma veya bozulan özel karakterler? Sürüm v2025.8.8'de çözüldü; kelime sarma ve metadataları test edin.
IronPDF'i Geliştiren Mühendislerden 7/24 Destek Alın
- Kapsamlı sorun giderme kılavuzu
- Performans optimizasyon stratejileri
- Mühendislik destek talepleri
- Hızlı sorun giderme kontrol listesi
Sonraki Adımlar
Sıkça Sorulan Sorular
HTML'yi C#'ta PDF'ye nasıl dönüştürürüm?
Chrome işleme kütüphanesi kullanarak HTML, CSS3 ve JavaScript'i mükemmel piksel PDF'lere dönüştürerek C#'ta HTML'yi PDF'ye dönüştürebilirsiniz. IronPDF gibi araçlar; URL'lerden, HTML dizelerinden veya dosyalardan işleme yapmanıza olanak tanır ve başlıkları, kimlik doğrulamayı ve yazdırma ayarlarını destekler.
.NET için en iyi HTML'yi PDF'ye dönüştürme kütüphanesi nedir?
En iyi kütüphane, doğru Chrome işleme, çapraz platform dağıtımı ve kurumsal özellikleri desteklemelidir. IronPDF, Windows, Linux, macOS ve Docker'da çalışan, güvenlik, imzalar, uyumluluk ve ölçeklenebilir .NET uygulamaları için destek sunan tüm bu özellikleri kapsar.
C# kullanarak HTML dizelerini PDF'ye nasıl dönüştürebilirim?
HTML dizelerini PDF'ye dönüştürmek için ChromePdfRenderer sınıfını ve RenderHtmlAsPdf yöntemini kullanın. HTML dizesini bu yönteme geçirin, ardından PDF'yi SaveAs kullanarak kaydedin.
C#'ta bir web sayfası URL'sini PDF belgesine dönüştürmenin adımları nelerdir?
Bir web sayfası URL'sini doğrudan PDF'ye dönüştürmek için stil, resim ve formlar ile bağlantılar gibi etkileşimli öğeleri korumanıza olanak tanıyan RenderUrlAsPdf metodunu kullanabilirsiniz.
HTML dosyasını C# içinde PDF'e nasıl dönüştürürüm?
ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html") kullanarak yerel HTML dosyalarını PDF'ye dönüştürün. IronPDF, tüm göreli varlık yollarını (resimler, CSS, JS) otomatik olarak çözer.
ASP.NET Razor Pages veya MVC Görünümlerini PDF'ye nasıl dönüştürürüm?
IronPDF, Razor Sayfaları için IronPdf.Extensions.Razor ve MVC Görünümleri için IronPdf.Extensions.Mvc.Core gibi özel uzantı paketleri sağlar. Görünümleri doğrudan denetleyicilerinizden PDF'ye dönüştürmek için bağımlılık enjeksiyonu kullanarak RenderRazorToPdf veya RenderRazorViewToPdf kullanın. Razor kılavuzuna bakın →
JavaScript içeriğinin PDF'de doğru şekilde işlenmesini nasıl sağlarım?
JavaScript işleme özelliğini etkinleştirip RenderingOptions.EnableJavaScript = true ayarlayarak etkinleştirin ve dinamik içeriğin dönüştürülmeden önce tamamen yüklendiğinden emin olmak için RenderingOptions.WaitFor.RenderDelay kullanarak bir işleme gecikmesi ekleyin. Bekleme kılavuzuna bakın →
C#'ta bir PDF'ye başlık ve alt bilgi eklemek için en iyi yöntem nedir?
TextHeaderFooter sınıfı basit metin başlıkları ve alt bilgileri için veya daha karmaşık HTML içeriği için HtmlHeaderFooter sınıfını kullanın. Otomatik içerik üretimi için {page}, {total-pages} gibi dinamik yer tutucuları ve {date} kullanabilirsiniz. Başlık ve alt bilgi kılavuzuna bakın →
C# .NET'te PDF çıktısında sayfa kesilmelerini nasıl yönetirim?
Sayfa kesilmelerini kontrol etmek için CSS özelliklerini kullanarak PDF'lerinizde page-break-after: always ve page-break-inside: avoid yazdırma medya türü CSS bloğu içinde kullanın. Sayfa kesilmeleri kılavuzuna bakın →
PDF'lerde kağıt boyutu ve yönlendirme ayarları için hangi seçenekler var?
Kağıt boyutunu RenderingOptions.PaperSize kullanarak ayarlayın (A4, Letter, Legal, vb. seçenekler) ve yönlendirmeyi RenderingOptions.PaperOrientation ile Portre veya Peyzaj olarak ayarlayın. Milimetre veya inç cinsinden özel boyutlar da desteklenir. Kağıt boyutu kılavuzuna bakın →
Kimlik doğrulamalı web sayfalarını PDF'ye dönüştürebilir miyim?
Evet. IronPDF, çerezler, özel HTTP başlıkları ve formlara dayalı kimlik doğrulama destekler. Çerezleri ChromePdfRenderer.RenderingOptions.CustomCookies üzerinden ayarlayın veya belirteç tabanlı kimlik doğrulama için kimlik doğrulama başlıklarını geçirin. Windows NTLM ve Kerberos kimlik doğrulama da desteklenir. Çerezler kılavuzuna bakın →
Bir HTML şablonundan birden fazla PDF oluşturabilir miyim?
Evet, yer tutucularla HTML şablonları oluşturun, ardından string değiştirme veya Handlebars.NET gibi şablon kütüphaneleri kullanın. Yinelemeli verilerinizdeki gerçek değerlerle yer tutucuları değiştirin ve RenderHtmlAsPdf kullanarak PDF oluşturun.
Oluşturduğum PDF'leri parola ile korumak mümkün mü?
Evet, SecuritySettings özelliğini kullanarak kullanıcı ve sahibi parolalarını ayarlayabilir, yazdırma ve kopyalama gibi izinleri yapılandırabilir ve SecuritySettings.EncryptionAlgorithm ile AES256 şifrelemesi uygulayabilirsiniz. Şifreleme kılavuzuna bakın →
HTML'den PDF/A uyumlu belgeler oluşturabilir miyim?
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, çoğu HTML'den PDF'ye dönüştürücünün sunmadığı bir özelliktir. PDF/A kılavuzuna bakın →
Yüksek hacimli PDF oluşturma işlemini nasıl optimize edebilirim?
Engelleme olmayan işlemler için RenderHtmlAsPdfAsync gibi asenkron metodları kullanarak performansı optimize edin. ChromePdfRenderer örneklerini yeniden kullanın, birden fazla PDF'yi Task.WhenAll kullanarak aynı anda işleyin ve 64-bit bir sistemde yeterli sunucu kaynaklarına sahip olduğunuzdan emin olun. Asenkron kılavuzuna bakın →
Birden fazla PDF'yi birleştirmek veya belgeme kapak sayfası eklemek nasıl yapılır?
Statik PdfDocument.Merge metodunu kullanarak birden fazla PDF'yi birleştirin. Kendi kapak sayfanızı ayrı olarak oluşturun ve ana belgenizle birleştirerek kapsamlı bir PDF oluşturun. Birleştirme kılavuzuna bakın →
IronPDF'yi Azure, AWS veya Docker üzerinde dağıtabilir miyim?
Evet. IronPDF, Azure App Service, Azure Functions, AWS Lambda ve Linux üzerinde Docker konteynerlarında çalışır. Her platform için özel kurulum kılavuzları ve Docker görüntüleri mevcuttur. Azure kılavuzuna bakın → · AWS kılavuzuna bakın → · Docker kılavuzuna bakın →
.NET 10 uyumluluğu: IronPDF, .NET 10'u doğrudan destekliyor mu?
Evet — IronPDF, .NET 10 ile tamamen uyumludur. IronPDF sürüm notlarına göre, kitaplık .NET 10 projeleri için gün sıfırda hazır olup, hiçbir ekstra yapılandırma gerektirmez. Web, konsol, masaüstü veya mikro hizmet uygulamalarını kullanıyor olsanız da, IronPDF "kutudan çıkar çıkmaz" .NET 10 ile çalışır.
IronPDF kullanmak ücretsiz mi?
IronPDF, geliştirmede işlevsellikten ödün vermeden ve filigran olmadan 30 günlük ücretsiz bir deneme sunar. Üretim kullanımı, $749'dan başlayan ticari bir lisans gerektirir. Lite, Plus, Professional ve Enterprise katmanları mevcuttur. Fiyatlandırmaya bakın →
Bu kütüphanenin işleme kalitesi diğer seçenekler, örneğin wkhtmltopdf ile nasıl karşılaştırılır?
Bu kütüphane, eskimis wkhtmltopdf'in WebKit motorunun aksine piksel-mükemmel PDF'ler için modern bir Chrome render motoru kullanir. Sunucu çalıştırilabilir dosyalarina ihtiyaçi yoktur, tam JavaScript/CSS3 desteği sunar, duzenli güncelleme alir ve profesyonel destek saglar.
HTML'den PDF'ye dönüşüm için neden bu kütüphaneyi PDFSharp yerine tercih etmeliyim?
PDFSharp, doğrudan HTML'den PDF'ye dönüşüm sunmaz ve karmasik çözümler gerektirir. Bu kütüphane, yüksek seviye bir API ile modern web teknolojileri destegiyle doğrudan HTML/URL/dosya dönüşümu sunar, duzenli güncellemeler ve profesyonel destek saglar. PDFSharp karsilastirmasina bakin →
HTML dönüşümu için bu kütüphane iTextSharp'tan neden daha iyi bir seçenektir?
iTextSharp'in ücretsiz sürümu, yerel HTML'den PDF'ye dönüşümu desteklemez ve karmasik, dusuk seviye bir API'ye sahiptir. Bu kütüphane, sezgisel bir API ile kesintisiz HTML dönüşümu, tam CSS3/JavaScript desteği ve AGPL lisanslama kisitlamalari olmadan saglar. iTextSharp karsilastirmasina bakin →
Bu kütüphanenin render kalitesi Aspose.PDF ile nasıl karsilastirilir?
Bu kütüphane, Aspose.PDF'in sikca stil ve dinamik icerige uymaz. Aspose URL dönüşümu için manuel HTML indirme gerektirir, ancak bu kütüphane URL'leri doğrudan daha doğru şekilde dönüştürur. Aspose karsilastirmasina bakin →
Bu kütüphaneyi Syncfusion PDF'ye karsi neden tercih etmeliyim?
Syncfusion yetenekli olsa da, bu kütüphanenin optimize edilmis Chrome motoru daha hizli çalışir ve dinamik iceriği daha etkili işler. Daha basit bir API ve OCR ile barkod oluşturma gibi ek özellikler sunar. Syncfusion karsilastirmasina bakin →

