HTML'den PDF'ye: C# .NET için Hızlı Bir Öğretici

HTML'yi PDF'e C#'da Nasıl Dönüştürülür (Geliştirici Kılavuzu)

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçasını kopyalayıp çalıştırın.

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<p>Hello World</p>")
           .SaveAs("pixelperfect.pdf");
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronPDF kullanmaya başlayın ücretsiz deneme ile

    arrow pointer

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"
$vbLabelText   $csharpLabel

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

  1. HTML'yi PDF'e C# olarak nasıl dönüştürülür

  2. HTML'den PDF'e Ayarları Nasıl Yapılandırılır

  3. Gelişmiş PDF Oluşturma ve Güvenlik Özellikleri Nasıl Kullanılır

  4. HTML'yi PDF'e Bulut Platformlarında Nasıl Dağıtılır

  5. IronPDF ve Diğer .NET PDF Kütüphaneleri Arasında Karşılaştırma

  6. 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:

Çok Yönlü PDF Dönüşümü Dinamik Web Sayfasını PDF'e Dönüştürme

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")
$vbLabelText   $csharpLabel

İpuçları(v2025.9.4'de güncellendi) Son güncellemeler, HTML metaverilerindeki özel karakterler/emoji'ler ile ilgili sorunları düzeltir ve Linux'ta Çince karakterler dahil olmak üzere HTML form alanlarının daha iyi ele alınmasını sağlar. Optimal sonuclar icin EnableJavaScript = true ile dinamik icerigi test edin.

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")
$vbLabelText   $csharpLabel

İpuçlarıBaseUrlPath, IronPDF'a CSS, JavaScript ve resim dosyalarınızın nerede bulunacağını söyler. HTML dizenizdeki tüm göreceli yollar bu dizinden çözülecektir.

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
```
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

İpuçlarıHTML dosyalarınızı, dönüştürmeden önce tarayıcıda düzenlemek ve test etmek için varlıklarıyla (CSS, resimler) ayrı bir klasörde saklayın. Bu, yüksek kaliteli PDF belgeleri için HTML'nizin mükemmel şekilde render edilmesini sağlar.

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
SHELL
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")
$vbLabelText   $csharpLabel

Lütfen dikkate alinRenderRazorToPdf, ASP.NET Core Web Uygulama projesi gerektirir. Console uygulamaları veya sınıf kütüphanelerinde çalışmaz — Razor görünüm motoru barındırma hatlarında mevcut olmalıdır.

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
SHELL

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)()
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

İpuçlarıRendırlanmış PDF dosya formatınızda daha temiz, yazdırmaya yönelik düzenler için PdfCssMediaType kullanın. Kullanıcıların tarayıcıda gördüğüyle tam olarak eşleşmesi için Ekran'ı kullanın.

İ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")
$vbLabelText   $csharpLabel

İ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")
$vbLabelText   $csharpLabel

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>
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
SHELL
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")
$vbLabelText   $csharpLabel

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>
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
$vbLabelText   $csharpLabel

İpuçlarıHTML'den PDF'e dönüşüm için performans optimizasyon ipuçları

  • 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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

Ç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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

DikkatAzure Uygulama Hizmeti Ücretsiz ve Paylaşılan katmanlar (F1, D1), Chrome tabanlı PDF render için yeterli kaynağa sahip değildir.
Bellek yetersizliği hatalarından ve süreç zaman aşımlarından kaçınmak için en az bir B1 (Basic) katmanı veya daha yükseğini kullanın.)}]

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
$vbLabelText   $csharpLabel

Lütfen dikkate alinLambda fonksiyonunuzu en az 512 MB bellek ve en az bir 60 saniye zaman aşımı ile konfigüre edin.
Chrome tabanlı render bellek yoğundur ve soğuk başlangıçlarda, yerleşik tarayıcı motoru için ek başlatma süresi gerektirir.)}]

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")
$vbLabelText   $csharpLabel

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.

https://www.reddit.com/

Reddit ana sayfasinin dinamik içerik, modern stil ve PDF dönüştürme testi için kullanılan interaktif ögeleri gösteren ekran görüntüsu

IronPDF

IronPDF dönüştürme sonucu Reddit ana sayfasının tüm dinamik içerik, stil ve interaktif ögeler korunmuş piksel-mükemmel renderlamasını gösteriyor

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 PDF dönüştürme Reddit ana sayfasının eksik bolümler ve tam olmayan stil ile kısmen renderlanmasını gösteriyor

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 dönüştürme teşebbüsü Reddit ana sayfasının çoğu ögesi eksik olan minimal içerik yakalamasını gösteriyor

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 cıkışı dinamik ögeler veya modern CSS olmadan Reddit ana sayfasının statik, stilsiz versiyonunu görüntüluyor

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.

IronPDF Lisanslamasına Göz Atın

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

Sonraki Adımlar

PDF Belgeleri Nasıl Birleştirilir veya Bölünür
Nasıl Yapılır'a Bakın
Özel Başlıklar ve Altbilgiler PDF Dosyalarına Nasıl Eklenir
Nasıl Yapılır'a Bakın
PDF'deki Metin ve Bölgeler Nasıl Gizlenir
Nasıl Yapılır'a Bakın

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 →

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku
İnceleyen
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluk Ekibi
Jeff, aynı zamanda .NET ve Visual Studio ekipleri için Baş Program Yöneticisi'dir. Microsoft geliştirici etkinlikleri (Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit) için atölye çalışmaları, sunumlar yazar ve içerik planlar ve haftada iki kez yayınlanan 'Fritz ve Arkadaşları' canlı yayınının ev sahibidir.
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.