IronPDF ile C# kullanarak .NET Core'da HTML'yi PDF'ye dönüştürün
HTML'den doğrudan yüksek kaliteli PDF'ler oluşturmak, modern .NET uygulamalarında rutin bir gerekliliktir; raporlar, faturalar ve biletlerin tümü, web kullanıcı arayüzüyle eşleşen piksel mükemmelliğinde çıktılara ihtiyaç duyar. IronPDF, HTML, Razor görünümleri ve web sitelerinin tamamını standartlara uygun PDF belgelerine dönüştürmek için tek bir C# API sunarak bu iş akışını kolaylaştırır. Bu kılavuzun sonunda, bir geliştirici ASP.NET Core projesindeki URL'leri, ham HTML'yi veya MVC görünümlerini dönüştürebilecek ve aynı kodu Windows, Linux, Docker veya sunucusuz ortamlara dağıtabilecektir.
Hızlı Başlangıç: .NET Core'da HTML'den PDF Oluşturma
IronPDF kütüphanesini kullanarak .NET Core'da HTML'yi zahmetsizce PDF'ye dönüştürün. Bu kılavuz, minimum kodla HTML içeriğini yüksek kaliteli bir PDF'ye dönüştürerek hızlı bir başlangıç yapmanızı sağlayacak basit bir örnek sunar. PDF oluşturmayı uygulamalarına kolaylıkla entegre etmek isteyen geliştiriciler için mükemmeldir.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
Minimal İş Akışı (5 adım)
- NuGet
IronPdfNuGet paketini yükleyin - Bir web sitesi URL'sini şu şekilde dönüştürün
RenderUrlAsPdf - Ham HTML'yi şu şekilde işleyin
RenderHtmlAsPdf - MVC görünümünü PDF'ye aktarın
- Kağıt boyutunu, kenar boşluklarını, üstbilgileri ve altbilgileri ayarlayın
Hızlı Başlangıç Kontrol Listesi
- Yükleme –
Install-Package IronPdf - Bir URL'yi işleyin –
ChromePdfRenderer.RenderUrlAsPdf() - Ham HTML'yi işleyin –
ChromePdfRenderer.RenderHtmlAsPdf() - Razor görünümünü dışa aktarma –
ChromePdfRenderer.RenderHtmlAsPdfAsync() - Çıktıyı ince ayarlayın –
ChromePdfRenderer.RenderingOptions'den yararlanın
Bu Eğitimde Ele Alınan Konular
- URL, HTML dizesi ve Razor görünümü dönüştürme
- Kağıt, kenar boşluğu ve ortam türü yapılandırması
- Çapraz platform dağıtımı (Windows, Linux, Docker)
- Son işlem: PDF'leri birleştirme, filigran ekleme, parola ile koruma ve dijital olarak imzalama
- Uçtan uca örnek: bilet rezervasyonu MVC uygulaması
PDF kütüphanesini .NET Core'a nasıl yüklerim?
Kütüphanenin kurulumu, herhangi bir .NET 8 projesinde tek satırlık bir işlemdir ve .NET 9 önizlemesi ile yakında çıkacak olan .NET 10 sürümüyle ileriye dönük uyumludur. NuGet'in Paket Yöneticisi Konsolu'nu kullanın; paket yöneticisi, Windows, Linux, Docker ve sunucusuz hedefler için tüm bağımlılıkları otomatik olarak çözecektir.
PM> Install-Package IronPdf # .NET 8 LTS and higher
PM> Install-Package IronPdf # .NET 8 LTS and higher
dotnet add package IronPdf ile çalışır.
Yükleme tamamlandıktan sonra, herhangi bir genel URL'yi dönüştürerek her şeyin doğru şekilde bağlandığını doğrulayın:
// Program.cs — .NET 8 LTS
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render a live website to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
// Persist to disk
pdf.SaveAs("website-snapshot.pdf");
// Program.cs — .NET 8 LTS
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render a live website to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
// Persist to disk
pdf.SaveAs("website-snapshot.pdf");
' Program.cs — .NET 8 LTS
Imports IronPdf
Private renderer = New ChromePdfRenderer()
' Render a live website to PDF
Private PdfDocument As using
' Persist to disk
pdf.SaveAs("website-snapshot.pdf")
Nasıl çalışır?
ChromePdfRendererarka planda sanal bir Chromium örneği başlatır; ayrı bir Chrome yüklemesi gerekmez.RenderUrlAsPdf, JavaScript ile oluşturulan içerik, CSS medya sorguları ve yazı tipleri dahil olmak üzere, tamamen işlenmiş DOM'u yakalar.- Sonuçta ortaya çıkan
PdfDocument, çıktıyı birleştirmek, parola ile korumak veya dijital olarak imzalamak için yardımcı yöntemler sunar; bu özellikler bu öğreticinin ilerleyen bölümlerinde ele alınacaktır.
Dağıtımla ilgili ayrıntılar (Azure App Service, AWS Lambda, şirket içi Linux) için özel kurulum kılavuzuna ve gelişmiş NuGet kurulum sayfalarına bakın. Docker ve K8s kümeleri için dahili CI/CD ipuçları, Docker dağıtımına ilişkin en iyi uygulamalar bölümünde ele alınmaktadır.
Bir .NET Core hizmeti, canlı bir web sitesi URL'sini nasıl PDF'ye dönüştürebilir?
RenderUrlAsPdf'ye tek bir çağrı yeterlidir: herkese açık herhangi bir URL'yi iletin ve IronPDF, tamamen işlenmiş, standartlara uygun bir PDF dosyası döndürür. Aşağıdaki kod, .NET 8 LTS'yi hedeflemektedir ve .NET 9 önizlemesinde ve 2025'te çıkacak olan .NET 10 sürümünde de değiştirilmeden derlenebilir.
Adım adım örnek
// Program.cs — .NET 8 LTS-compatible
using IronPdf;
// 1. Activate a license (or trial key)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// 2. Create a reusable renderer instance
var renderer = new ChromePdfRenderer
{
RenderingOptions =
{
// Force A4 portrait output and apply @media print styles
PaperSize = PdfPaperSize.A4,
CssMediaType = PdfCssMediaType.Print
}
};
// 3. Convert Microsoft Docs home page to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/");
// 4. Save the PDF or stream it from a Web API
pdf.SaveAs("docs-offline-copy.pdf");
// Program.cs — .NET 8 LTS-compatible
using IronPdf;
// 1. Activate a license (or trial key)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// 2. Create a reusable renderer instance
var renderer = new ChromePdfRenderer
{
RenderingOptions =
{
// Force A4 portrait output and apply @media print styles
PaperSize = PdfPaperSize.A4,
CssMediaType = PdfCssMediaType.Print
}
};
// 3. Convert Microsoft Docs home page to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/");
// 4. Save the PDF or stream it from a Web API
pdf.SaveAs("docs-offline-copy.pdf");
' Program.cs — .NET 8 LTS-compatible
Imports IronPdf
' 1. Activate a license (or trial key)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
' 2. Create a reusable renderer instance
Dim renderer = New ChromePdfRenderer With {
.RenderingOptions = {
PaperSize = PdfPaperSize.A4,
CssMediaType = PdfCssMediaType.Print
}
}
' 3. Convert Microsoft Docs home page to PDF
Using pdf As PdfDocument = renderer.RenderUrlAsPdf("https://learn.microsoft.com/")
' 4. Save the PDF or stream it from a Web API
pdf.SaveAs("docs-offline-copy.pdf")
End Using
Neden işe yarıyor?
ChromePdfRenderer, sanal bir Chromium örneği başlatır; sistem Chrome bağımlılığı yoktur, bu da Docker görüntülerini hafif tutar.RenderUrlAsPdf, tek sayfalık uygulamaların doğru şekilde görüntülenmesi için DOM ve JavaScript'in tamamlanmasını bekler.CssMediaTypedeğerini PRINT olarak ayarlamak, motorun tarayıcının PRINT → Save as PDF çıktısıyla eşleşen, yazdırmaya özgü kuralları kullanmasını sağlar.- Ortaya çıkan
PdfDocumentşifrelenebilir, dijital olarak imzalanabilir, birleştirilebilir veya rasterleştirilebilir; bu özellikler sonraki bölümlerde ele alınacaktır.
renderer.LoggingOptions.DebugMode = true'yi etkinleştirin ve Headless Chrome hata ayıklama kılavuzunu izleyerek, görüntüleme sırasında canlı DevTools'u inceleyin.İlgili kaynaklar
- API Referansı –
ChromePdfRenderer.RenderUrlAsPdf - API Referansı –
PdfDocument.SaveAs - Eğitim – IronPDF'yi Docker kapsayıcılarında dağıtma
.NET Core'da ham HTML'yi PDF'ye nasıl dönüştürebilirim?
Bir HTML dizesi veya bir Razor görünümünün işlenmiş işaretlemesini ChromePdfRenderer.RenderHtmlAsPdf'ye aktardığınızda, anında standartlara uygun bir PDF/A oluşturulur. Bu yöntem, IronPDF'nin gömülü Chromium motorunu çalıştırır; bu nedenle harici bir tarayıcı yüklemesi veya WebView bağımlılığı gerekmez. Aşağıda gösterilen aynı kod, bugün .NET 8 LTS üzerinde derlenir ve .NET 9 ile Kasım 2025'te piyasaya sürülmesi planlanan .NET 10 sürümleriyle ileriye dönük uyumludur.
Örnek — bir HTML parçasından PDF oluşturma
// Program.cs — compatible with .NET 8 and newer
using IronPdf;
// Sample HTML fragment (could also be read from a file, Razor view, or CMS)
const string html = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Quarterly Report</title>
<style>
body { font-family:'Segoe UI', sans-serif; margin:1.2rem; }
header { margin-bottom:2rem; }
h1 { color:#3056d3; }
table { width:100%; border-collapse:collapse; margin-top:1rem; }
th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; }
tr:nth-child(even){ background-color:#f8f9fa; }
</style>
</head>
<body>
<header><h1>Q2 Revenue Summary</h1></header>
<table>
<thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead>
<tbody>
<tr><td>IronPDF for .NET</td><td>1,200,000</td></tr>
<tr><td>IronOCR for .NET</td><td>890,000</td></tr>
<tr><td>IronXL for .NET</td><td>610,000</td></tr>
</tbody>
</table>
</body>
</html>
""";
// 1. Create a renderer once and reuse it across conversions
var renderer = new ChromePdfRenderer
{
RenderingOptions =
{
PaperSize = PdfPaperSize.A4, // ISO-standard paper size
PaperOrientation = PdfPaperOrientation.Portrait,
CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS
RenderDelay = 100, // Wait 100 ms for JS/animations
FallbackEncoding = "utf-8" // Handle non-ASCII correctly
}
};
// 2. Render the HTML fragment
using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
// 3. Persist to disk or return via ASP.NET Core FileStreamResult
pdf.SaveAs("q2-report.pdf");
// Program.cs — compatible with .NET 8 and newer
using IronPdf;
// Sample HTML fragment (could also be read from a file, Razor view, or CMS)
const string html = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Quarterly Report</title>
<style>
body { font-family:'Segoe UI', sans-serif; margin:1.2rem; }
header { margin-bottom:2rem; }
h1 { color:#3056d3; }
table { width:100%; border-collapse:collapse; margin-top:1rem; }
th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; }
tr:nth-child(even){ background-color:#f8f9fa; }
</style>
</head>
<body>
<header><h1>Q2 Revenue Summary</h1></header>
<table>
<thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead>
<tbody>
<tr><td>IronPDF for .NET</td><td>1,200,000</td></tr>
<tr><td>IronOCR for .NET</td><td>890,000</td></tr>
<tr><td>IronXL for .NET</td><td>610,000</td></tr>
</tbody>
</table>
</body>
</html>
""";
// 1. Create a renderer once and reuse it across conversions
var renderer = new ChromePdfRenderer
{
RenderingOptions =
{
PaperSize = PdfPaperSize.A4, // ISO-standard paper size
PaperOrientation = PdfPaperOrientation.Portrait,
CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS
RenderDelay = 100, // Wait 100 ms for JS/animations
FallbackEncoding = "utf-8" // Handle non-ASCII correctly
}
};
// 2. Render the HTML fragment
using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
// 3. Persist to disk or return via ASP.NET Core FileStreamResult
pdf.SaveAs("q2-report.pdf");
' Program.cs — compatible with .NET 8 and newer
Imports IronPdf
' Sample HTML fragment (could also be read from a file, Razor view, or CMS)
Private Const html As String = "<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""utf-8"">
<title>Quarterly Report</title>
<style>
body { font-family:'Segoe UI', sans-serif; margin:1.2rem; }
header { margin-bottom:2rem; }
h1 { color:#3056d3; }
table { width:100%; border-collapse:collapse; margin-top:1rem; }
th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; }
tr:nth-child(even){ background-color:#f8f9fa; }
</style>
</head>
<body>
<header><h1>Q2 Revenue Summary</h1></header>
<table>
<thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead>
<tbody>
<tr><td>IronPDF for .NET</td><td>1,200,000</td></tr>
<tr><td>IronOCR for .NET</td><td>890,000</td></tr>
<tr><td>IronXL for .NET</td><td>610,000</td></tr>
</tbody>
</table>
</body>
</html>"
' 1. Create a renderer once and reuse it across conversions
Private renderer = New ChromePdfRenderer With {
.RenderingOptions = {
PaperSize = PdfPaperSize.A4,
PaperOrientation = PdfPaperOrientation.Portrait,
CssMediaType = PdfCssMediaType.Screen,
RenderDelay = 100,
FallbackEncoding = "utf-8"
}
}
' 2. Render the HTML fragment
Private PdfDocument As using
' 3. Persist to disk or return via ASP.NET Core FileStreamResult
pdf.SaveAs("q2-report.pdf")
Kodun gösterdiği şey
- Gömülü Chromium — IronPDF, Chromium motorunu bir araya getirerek HTML5, CSS3 ve JavaScript'in modern tarayıcılarla uyumlu olmasını garanti eder.
- Tek bağımlılık — Hafif bir NuGet yüklemesi, ek sistem kütüphanelerine gerek kalmadan Windows, Linux, Docker ve Azure/AWS'yi kapsar.
- Görüntüleme seçenekleri —
PaperSize,CssMediaTypeveRenderDelay, tarayıcının PRINT ayarlarını yansıtarak PDF'lerin ekran düzeniyle uyumlu olmasını sağlar. - Geleceğe dönük hedefleme — API yüzeyi .NET 8, .NET 9 STS ve yakında çıkacak olan .NET 10'da aynıdır, bu nedenle uzun vadeli bakım ihtiyacı minimum düzeydedir.
- Son işlem kancaları —
PdfDocument, birleştirme, parola koruması ve dijital imzalar için yardımcılar sunar; bunların her biri bu kılavuzun ilerleyen bölümlerinde ele alınacaktır.
Daha fazla bilgi için: adım adım HTML dizisinden PDF'ye dönüştürme kılavuzuna ve ChromePdfRenderer API belgelerinin tamamına bakın.
Bir ASP .NET Core MVC görünümü nasıl PDF'ye aktarılabilir?
IronPDF, tamamen işlenmiş bir Razor görünümünü ( .cshtml ) bir tarayıcının yapacağı gibi işler ve sonucu PdfDocument olarak aktarır. Aşağıdaki iş akışı, denetleyici mantığını temiz tutar, tarayıcı eklentisi gerektirmez ve .NET 8 LTS, .NET 9 önizleme sürümü ve Kasım 2025'te piyasaya sürülmesi planlanan .NET 10 sürümünde çalışır.
Uçtan uca denetleyici örneği
// TicketsController.cs — .NET 8 LTS / MVC
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using YourApp.Models; // TicketViewModel
public class TicketsController : Controller
{
private readonly ChromePdfRenderer _renderer;
public TicketsController()
{
_renderer = new ChromePdfRenderer
{
RenderingOptions =
{
PaperSize = PdfPaperSize.A5, // Compact ticket size
PaperOrientation = PdfPdfOrientation.Portrait,
FitToPaperWidth = true,
CssMediaType = PdfCssMediaType.Print,
Margins = new PdfMargins(5, 10, 5, 10) // mm
}
};
}
// GET /Tickets/Print/42
public async Task<IActionResult> Print(int id)
{
TicketViewModel vm = await _service.GetTicketAsync(id);
// 1. Render the Razor view to an HTML string
string html = await RazorTemplateEngine.RenderViewAsync(
HttpContext, "~/Views/Tickets/Print.cshtml", vm);
// 2. Convert HTML → PDF
using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);
// 3. Stream back as a file
return File(pdf.BinaryData, "application/pdf",
$"ticket-{id}.pdf");
}
}
// TicketsController.cs — .NET 8 LTS / MVC
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using YourApp.Models; // TicketViewModel
public class TicketsController : Controller
{
private readonly ChromePdfRenderer _renderer;
public TicketsController()
{
_renderer = new ChromePdfRenderer
{
RenderingOptions =
{
PaperSize = PdfPaperSize.A5, // Compact ticket size
PaperOrientation = PdfPdfOrientation.Portrait,
FitToPaperWidth = true,
CssMediaType = PdfCssMediaType.Print,
Margins = new PdfMargins(5, 10, 5, 10) // mm
}
};
}
// GET /Tickets/Print/42
public async Task<IActionResult> Print(int id)
{
TicketViewModel vm = await _service.GetTicketAsync(id);
// 1. Render the Razor view to an HTML string
string html = await RazorTemplateEngine.RenderViewAsync(
HttpContext, "~/Views/Tickets/Print.cshtml", vm);
// 2. Convert HTML → PDF
using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);
// 3. Stream back as a file
return File(pdf.BinaryData, "application/pdf",
$"ticket-{id}.pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports YourApp.Models ' TicketViewModel
Public Class TicketsController
Inherits Controller
Private ReadOnly _renderer As ChromePdfRenderer
Public Sub New()
_renderer = New ChromePdfRenderer With {
.RenderingOptions = New PdfRenderingOptions With {
.PaperSize = PdfPaperSize.A5, ' Compact ticket size
.PaperOrientation = PdfPdfOrientation.Portrait,
.FitToPaperWidth = True,
.CssMediaType = PdfCssMediaType.Print,
.Margins = New PdfMargins(5, 10, 5, 10) ' mm
}
}
End Sub
' GET /Tickets/Print/42
Public Async Function Print(id As Integer) As Task(Of IActionResult)
Dim vm As TicketViewModel = Await _service.GetTicketAsync(id)
' 1. Render the Razor view to an HTML string
Dim html As String = Await RazorTemplateEngine.RenderViewAsync(
HttpContext, "~/Views/Tickets/Print.cshtml", vm)
' 2. Convert HTML → PDF
Using pdf As PdfDocument = _renderer.RenderHtmlAsPdf(html)
' 3. Stream back as a file
Return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf")
End Using
End Function
End Class
Bu kodun gösterdiği şey
- Geçici dosya yok — Razor görünümü bellekte işlenir, ardından doğrudan
RenderHtmlAsPdf'ye aktarılır; böylece disk I/O ve geçici klasör yarış koşulları önlenir. - Bilet boyutunda çıktı —
PaperSize = A5ve dar kenar boşlukları, evde yazdırılan biletlerin kompakt olmasını sağlar. - Tutarlı PRINT stilleri —
CssMediaType = Print, tarayıcıların kullandığı@media printCSS kurallarının aynısını uygular. - İkili akış —
pdf.BinaryData, dosya sistemine dokunmadan belgeyi aktarır; API uç noktaları ve Lambda işlevleri için idealdir. - Yeniden kullanılabilir renderer —
ChromePdfRenderer, her denetleyici için bir kez örneklenir, ardından yeniden kullanılır ve böylece işlem başlatma yükü en aza indirilir.
PaperSize, PaperOrientation, FitToPaperWidth
Margins, Header, Footer, Watermark
Sonraki adım: şifreleme ekleyin, dijital imzalar ekleyin veya birden fazla bileti tek bir dosyada birleştirin. Birleştirme örneğine ve dijital imza kılavuzuna bakın.
Render işleminden önce kağıt boyutu, kenar boşlukları, üstbilgiler, filigranlar ve güvenlik ayarlarını nasıl ince ayarlayabilirim?
IronPDF, çıktıların her yönünü (kağıt boyutları, yönlendirme, üstbilgiler ve altbilgiler, JavaScript zamanlaması, filigranlar, şifreleme ve dijital imzalar) kontrol eden tek bir ChromePdfRenderOptions nesnesi sunar; tüm bunlar ekstra tarayıcı eklentileri gerektirmez.
Kod örneği — birden fazla seçeneği aynı anda uygulayın
// AdvancedOptions.cs — .NET 8 compatible
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure everything in one place
renderer.RenderingOptions = new ChromePdfRenderOptions
{
// 1. Page layout
PaperSize = PdfPaperSize.A4, // ISO size
PaperOrientation = PdfPdfOrientation.Portrait,
Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm
// 2. Timing & media
CssMediaType = PdfCssMediaType.Print, // Respect @media print
EnableJavaScript = true,
RenderDelay = 200, // Wait 200 ms for animations
// 3. Headers & footers (HTML gives full design freedom)
HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>",
HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>",
// 4. Watermark
Watermark = new HtmlStamp
{
HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>",
VerticalAlignment = VerticalAlignment.Center,
HorizontalAlignment = HorizontalAlignment.Center
},
// 5. Security
SecurityOptions = new PdfSecurityOptions
{
OwnerPassword = "StrongOwnerPwd!",
UserPassword = "ReadOnly",
AllowUserPrinting = false,
AllowUserCopyPasteContent = false
}
};
// Render any HTML
using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>");
// Digitally sign with a PFX certificate (optional)
pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval");
// Save
pdf.SaveAs("advanced-options-demo.pdf");
// AdvancedOptions.cs — .NET 8 compatible
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure everything in one place
renderer.RenderingOptions = new ChromePdfRenderOptions
{
// 1. Page layout
PaperSize = PdfPaperSize.A4, // ISO size
PaperOrientation = PdfPdfOrientation.Portrait,
Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm
// 2. Timing & media
CssMediaType = PdfCssMediaType.Print, // Respect @media print
EnableJavaScript = true,
RenderDelay = 200, // Wait 200 ms for animations
// 3. Headers & footers (HTML gives full design freedom)
HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>",
HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>",
// 4. Watermark
Watermark = new HtmlStamp
{
HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>",
VerticalAlignment = VerticalAlignment.Center,
HorizontalAlignment = HorizontalAlignment.Center
},
// 5. Security
SecurityOptions = new PdfSecurityOptions
{
OwnerPassword = "StrongOwnerPwd!",
UserPassword = "ReadOnly",
AllowUserPrinting = false,
AllowUserCopyPasteContent = false
}
};
// Render any HTML
using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>");
// Digitally sign with a PFX certificate (optional)
pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval");
// Save
pdf.SaveAs("advanced-options-demo.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure everything in one place
renderer.RenderingOptions = New ChromePdfRenderOptions With {
' 1. Page layout
.PaperSize = PdfPaperSize.A4, ' ISO size
.PaperOrientation = PdfPdfOrientation.Portrait,
.Margins = New PdfMargins With {.Top = 20, .Bottom = 25, .Left = 15, .Right = 15}, ' mm
' 2. Timing & media
.CssMediaType = PdfCssMediaType.Print, ' Respect @media print
.EnableJavaScript = True,
.RenderDelay = 200, ' Wait 200 ms for animations
' 3. Headers & footers (HTML gives full design freedom)
.HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>",
.HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>",
' 4. Watermark
.Watermark = New HtmlStamp With {
.HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>",
.VerticalAlignment = VerticalAlignment.Center,
.HorizontalAlignment = HorizontalAlignment.Center
},
' 5. Security
.SecurityOptions = New PdfSecurityOptions With {
.OwnerPassword = "StrongOwnerPwd!",
.UserPassword = "ReadOnly",
.AllowUserPrinting = False,
.AllowUserCopyPasteContent = False
}
}
' Render any HTML
Using pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>")
' Digitally sign with a PFX certificate (optional)
pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval")
' Save
pdf.SaveAs("advanced-options-demo.pdf")
End Using
Bu seçenekler neden önemlidir?
PaperSize,MarginsveCssMediaType, tarayıcının yazdırma iletişim kutusunu yansıtmaktadır; böylece ekran düzenleri ve PDF, Windows, Linux ve Docker'da aynı kalır.- HTML üstbilgileri ve altbilgileri Razor belirteçlerini, CSS'yi ve JavaScript'i destekler; bu, dinamik sayfa numaraları veya markalama için kullanışlıdır.
HtmlStamp, tek bir satırla tam HTML + CSS kontrolüyle markalı filigranlar oluşturmanıza olanak tanır.- Güvenlik seçenekleri, üçüncü taraf araçlara gerek kalmadan 128 bit şifreleme, sahip/kullanıcı şifreleri ve ayrıntılı izinler sağlar.
- Dijital imzalar, kodun içine doğrudan bir şifreleme mührü ekleyerek yasal geçerliliği ve tahrifat kanıtını korur.
ExtractAllTextveExtractAllImagesgibi ayıklama yardımcıları, analiz gerektiğinde süreci tersine çevirir.
Hızlı başvuru — Popüler ayarlar
PaperSize, PaperOrientation, Margins, CssMediaType, RenderDelay
`HtmlHeader`, `HtmlFooter`, dinamik Razor yer tutucuları, sayfa numarası belirteçleri
`Watermark`, `HtmlStamp`, opaklık, hizalama
`SecurityOptions`, `SignAndStamp`, sahip / kullanıcı şifreleri, sertifika mühürleme
Sonraki görevler: birden fazla PDF'yi birleştirmek, metin ve görüntüleri çıkarmak ve Docker veya sunucusuz ortama dağıtmak. Çapraz platform uyumluluğunu sağlamak için dağıtım bölümüne geçin.
PDF oluşturma kodunu Linux ve Windows'ta Docker'a nasıl dağıtabilirim?
IronPdf tek bir bağımsız NuGet paketi olarak dağıtılır, bu nedenle ASP.NET Core (veya konsol) uygulamasını konteynerize etmek hem Windows hem de Linux'ta oldukça basittir. Buradaki anahtar nokta, yayınlanan ikili dosyaları ince bir çalışma zamanı görüntüsüne kopyalamak ve Linux'ta IronPDF'nin gerektirdiği iki yerel kütüphaneyi (libnss3 ve libatk1.0-0) eklemektir.
Çok aşamalı Dockerfile (Ubuntu 22.04)
####### ---------- stage 1 ----------
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyPdfApp.csproj", "."]
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app/publish
####### ---------- stage 2 ----------
FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy
######## Install two native libs required by Chromium
RUN apt-get update && \
apt-get install -y --no-install-recommends libnss3 libatk1.0-0 && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "MyPdfApp.dll"]
mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022 ile değiştirin—Chromium DLL'leri pakete dahil edildiği için ek paketlere gerek yoktur.Uçtan uca doğrulama komut dosyası
docker build -t pdf-demo .
docker run --rm -p 8080:80 pdf-demo
######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com
docker build -t pdf-demo .
docker run --rm -p 8080:80 pdf-demo
######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com
- API eylemi, Bölüm 2'de olduğu gibi dahili olarak
ChromePdfRenderer.RenderUrlAsPdf'yi çağırır. - IronPDF, konteyner içinde sanal alanlı Chromium sürecini başlatır; başsız olarak işlediği için X sunucusu gerekmez.
- Büyük render işlemleri sırasında bile bellek kullanımı 200 MB'nin altında kalır.
libnss3 hem de libatk1.0-0 dosyasının mevcut olduğunu kontrol edin. (musl C kütüphanesinde gerekli semboller bulunmadığından Alpine görüntüleri desteklenmemektedir.Dahili kaynaklar
- Eğitim – IronPDF'yi Docker kapsayıcılarında dağıtma
- Nasıl Yapılır – Azure App Service Linux'ta IronPDF'yi çalıştırma
- API Referansı –
ChromePdfRenderersınıfı
.NET Core'da mevcut PDF'leri nasıl açabilir, birleştirebilir, filigran ekleyebilir ve içeriklerini ayıklayabilirim?
IronPDF, IronPDF, Adobe® Acrobat veya üçüncü taraf araçlar tarafından oluşturulan her PDF dosyasını, kalite kaybı olmadan açılabilen, düzenlenebilen, güvenliği sağlanabilen ve yeniden kaydedilebilen birinci sınıf bir PdfDocument nesnesi olarak ele alır. Aynı API yüzeyi bugün .NET 8 LTS'de çalışmaktadır ve .NET 9 önizlemesinde ve yakında çıkacak olan .NET 10 sürümünde de değiştirilmeden derlenmektedir.
Birleştirilmiş örnek — aç → birleştir → filigran → ayıkla
// ManipulateExistingPdf.cs — .NET 8 LTS compatible
using IronPdf;
using System.Linq;
// Step 1: Open two existing files (password-protected PDFs are supported)
PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd
PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required
// Step 2: Merge them (invoice pages first, then T&Cs)
PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge
// Step 3: Apply a diagonal CONFIDENTIAL watermark to every page
mergedPdf.ApplyStamp(
"<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);"
+ "width:100%;text-align:center;'>CONFIDENTIAL</div>",
verticalAlignment : VerticalAlignment.Center,
horizontalAlignment : HorizontalAlignment.Center);
// Step 4: Extract all text and the first image for audit purposes
string fullText = mergedPdf.ExtractAllText();
var image = mergedPdf.ExtractAllImages().FirstOrDefault();
// Step 5: Save or stream
mergedPdf.SaveAs("invoice-with-terms.pdf");
// ManipulateExistingPdf.cs — .NET 8 LTS compatible
using IronPdf;
using System.Linq;
// Step 1: Open two existing files (password-protected PDFs are supported)
PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd
PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required
// Step 2: Merge them (invoice pages first, then T&Cs)
PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge
// Step 3: Apply a diagonal CONFIDENTIAL watermark to every page
mergedPdf.ApplyStamp(
"<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);"
+ "width:100%;text-align:center;'>CONFIDENTIAL</div>",
verticalAlignment : VerticalAlignment.Center,
horizontalAlignment : HorizontalAlignment.Center);
// Step 4: Extract all text and the first image for audit purposes
string fullText = mergedPdf.ExtractAllText();
var image = mergedPdf.ExtractAllImages().FirstOrDefault();
// Step 5: Save or stream
mergedPdf.SaveAs("invoice-with-terms.pdf");
' ManipulateExistingPdf.cs — .NET 8 LTS compatible
Imports IronPdf
Imports System.Linq
' Step 1: Open two existing files (password-protected PDFs are supported)
Private invoice As PdfDocument = PdfDocument.FromFile("invoice.pdf", "ReadOnly") ' open with user pwd
Private tAndCs As PdfDocument = PdfDocument.FromFile("terms.pdf") ' no pwd required
' Step 2: Merge them (invoice pages first, then T&Cs)
Private mergedPdf As PdfDocument = PdfDocument.Merge(invoice, tAndCs) ' 1-liner merge
' Step 3: Apply a diagonal CONFIDENTIAL watermark to every page
mergedPdf.ApplyStamp("<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);" & "width:100%;text-align:center;'>CONFIDENTIAL</div>", verticalAlignment := VerticalAlignment.Center, horizontalAlignment := HorizontalAlignment.Center)
' Step 4: Extract all text and the first image for audit purposes
Dim fullText As String = mergedPdf.ExtractAllText()
Dim image = mergedPdf.ExtractAllImages().FirstOrDefault()
' Step 5: Save or stream
mergedPdf.SaveAs("invoice-with-terms.pdf")
Bunun önemi
- Aç ve birleştir –
PdfDocument.FromFile, şifrelenmiş dosyalar dahil olmak üzere standartlara uygun tüm PDF'leri yüklerken,PdfDocument.Mergetek bir çağrı ile istediğiniz sayıda belgeyi birleştirir. - Watermark –
ApplyStamp(aliasHtmlStamp), seçilen sayfalara rasterleştirme yapmadan tamamen stilize edilmiş HTML/CSS katmanları (logo, QR kodu veya diyagonal metin) yerleştirir. - İçerik çıkarma –
ExtractAllTextveExtractAllImages, sonraki aşamalarda arşivleme veya AI iş akışları için ham UTF-8 metin veya ikili görüntü akışlarını alır. - Dijital imzalar için hazır – aynı
PdfDocumentörneğiSignAndStampile mühürlenebilir ve ISO 32000-2 dijital imza gerekliliklerine uygun RFC 3161 uyumlu hash'ler üretilir. - Açık standart uyumluluğu – IronPDF, orijinal PDF yapısını (yazı tipleri, katmanlar, XMP meta verileri) korur, böylece çıktı Adobe® Reader ve diğer ISO 32000-1 görüntüleyicilerle uyumlu kalır.
- Geleceğe dönük – API, birlikte çalışabilirlik derlemelerini ve Win32 GDI çağrılarını kullanmaz, böylece kod Windows, Linux, Docker ve yakında çıkacak olan .NET 10 sunucusuz SKU'larda değiştirilmeden çalışır.
Sayfaları bölmek, döndürmek veya silmek mi istiyorsunuz? Ayrıntılı işlemler için sayfa düzeyinde düzenleme eğitimine bakın.
.NET Core'da PDF'ler nasıl şifrelenebilir ve dijital olarak imzalanabilir?
IronPDF, bir belgeyi iki adımda güvence altına alır: AES tabanlı şifreleme (kullanıcı/sahip şifreleri + ayrıntılı izinler) ve dosyayı kriptografik bir hash ile mühürleyen X.509 dijital imzalar. Her iki API de aynı PdfDocument nesnesinde bulunur, bu nedenle iş akışı şu anda .NET 8 LTS'de aynıdır ve .NET 9 önizlemesinde ve yakında çıkacak olan .NET 10 sürümünde de değişiklik yapılmadan derlenir.
Örnek — 256 bit AES uygulayın, PRINT haklarını kilitleyin ve görünür bir imza ekleyin
// SecureAndSign.cs — .NET 8 LTS compatible
using IronPdf;
// Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf)
PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf");
// Step 2: Configure AES-256 encryption & permissions
pdf.SecuritySettings = new PdfSecuritySettings
{
EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit,
OwnerPassword = "IronAdmin!2025",
UserPassword = "ReadOnly",
AllowUserPrinting = PdfPrintSecurity.Disabled,
AllowUserCopyPasteContent = false,
AllowUserAnnotations = false
};
// Step 3: Digitally sign with a PFX certificate
pdf.SignAndStamp(
certificatePath : "./certs/ironsoftware.pfx",
authority : "Iron Software Ltd.",
location : "Chicago, IL",
reason : "Final approval"
);
// Step 4: Persist or stream
pdf.SaveAs("financial-report-secured-signed.pdf");
// SecureAndSign.cs — .NET 8 LTS compatible
using IronPdf;
// Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf)
PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf");
// Step 2: Configure AES-256 encryption & permissions
pdf.SecuritySettings = new PdfSecuritySettings
{
EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit,
OwnerPassword = "IronAdmin!2025",
UserPassword = "ReadOnly",
AllowUserPrinting = PdfPrintSecurity.Disabled,
AllowUserCopyPasteContent = false,
AllowUserAnnotations = false
};
// Step 3: Digitally sign with a PFX certificate
pdf.SignAndStamp(
certificatePath : "./certs/ironsoftware.pfx",
authority : "Iron Software Ltd.",
location : "Chicago, IL",
reason : "Final approval"
);
// Step 4: Persist or stream
pdf.SaveAs("financial-report-secured-signed.pdf");
' SecureAndSign.cs — .NET 8 LTS compatible
Imports IronPdf
' Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf)
Private pdf As PdfDocument = PdfDocument.FromFile("financial-report.pdf")
' Step 2: Configure AES-256 encryption & permissions
pdf.SecuritySettings = New PdfSecuritySettings With {
.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit,
.OwnerPassword = "IronAdmin!2025",
.UserPassword = "ReadOnly",
.AllowUserPrinting = PdfPrintSecurity.Disabled,
.AllowUserCopyPasteContent = False,
.AllowUserAnnotations = False
}
' Step 3: Digitally sign with a PFX certificate
pdf.SignAndStamp(certificatePath := "./certs/ironsoftware.pfx", authority := "Iron Software Ltd.", location := "Chicago, IL", reason := "Final approval")
' Step 4: Persist or stream
pdf.SaveAs("financial-report-secured-signed.pdf")
Perde arkası
- AES-256 şifreleme — IronPDF, yükü NIST onaylı AES anahtarlarıyla sararak yetkisiz açma, yazdırma veya kopyala-yapıştır işlemlerini engeller.
- İzin ayrıntı düzeyi —
AllowUserPrintingveAllowUserFormDatagibi özellikler, eylem başına hakları değiştirir; Herhangi bir kısıtlamanın yürürlüğe girmesi için bir sahip şifresi gereklidir. - Dijital imzalar —
SignAndStamp, RFC 3161 zaman damgası ve sertifika zincirini gömer, böylece Adobe® Acrobat ve diğer ISO 32000-2 görüntüleyiciler tarafından tanınan, tahrifatı tespit edilebilir hash'ler oluşturur. - Tek noktadan API — hem şifreleme hem de imzalama aynı
PdfDocumentörneğini değiştirir, böylece birden fazla dosya geçişi önlenir ve dahili yazı tipleri, katmanlar ve meta veriler korunur.
location dizelerinin ASCII uyumlu olduğundan emin olun.Temel güvenlik ayarları
`PdfSecuritySettings` → `OwnerPassword`, `UserPassword`, `EncryptionAlgorithm`, `AllowUserPrinting`
`PdfDocument.SignAndStamp` — PFX yolu, yetki, konum, neden, zaman damgası
Daha ayrıntılı bilgi için iç kaynaklar
- Eğitim – PDF'yi parola ile koruma
- Örnek – Bir PDF'yi dijital olarak imzalama
- API Referansı –
PdfSecuritySettings
.NET Core'da HTML'den PDF'ye dönüştürme performansı nasıl optimize edilebilir ve ölçeklendirilebilir?
IronPDF'nin Chrome motoru, modern donanımlarda çoğu sayfayı zaten 1 saniyeden daha kısa sürede görüntüler, ancak iş hacmi, görüntülemeleri toplu iş olarak gerçekleştirerek, çoklu iş parçacığı özelliğini etkinleştirerek ve Headless Chrome'un ek yükünü azaltarak katlanarak artırılabilir. Aşağıdaki ipuçları tüm .NET sürümleri için geçerlidir.
1. Arka plan iş parçacığı havuzunda toplu işleme
// BatchRender.cs — Thread-safe on .NET 8+
using IronPdf;
using System.Threading.Tasks;
var htmlSources = Directory.GetFiles("./html", "*.html");
var renderer = new ChromePdfRenderer(); // reuse 1 instance
Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file =>
{
string html = File.ReadAllText(file);
using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.ChangeExtension(file, ".pdf"));
});
// BatchRender.cs — Thread-safe on .NET 8+
using IronPdf;
using System.Threading.Tasks;
var htmlSources = Directory.GetFiles("./html", "*.html");
var renderer = new ChromePdfRenderer(); // reuse 1 instance
Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file =>
{
string html = File.ReadAllText(file);
using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.ChangeExtension(file, ".pdf"));
});
' BatchRender.cs — Thread-safe on .NET 8+
Imports IronPdf
Imports System.Threading.Tasks
Private htmlSources = Directory.GetFiles("./html", "*.html")
Private renderer = New ChromePdfRenderer() ' reuse 1 instance
Parallel.ForEach(htmlSources, New ParallelOptions With {.MaxDegreeOfParallelism = Environment.ProcessorCount}, Sub(file)
Dim html As String = File.ReadAllText(file)
Using pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs(Path.ChangeExtension(file, ".pdf"))
End Using
End Sub)
ChromePdfRendereriş parçacığı güvenlidir; Tek bir örnek, kilitlenme olmadan düzinelerce eşzamanlı görevi yerine getirebilir.Parallel.ForEachher CPU çekirdeğini doyurur; Tipik sunucular, tek iş parçacıklı döngüye kıyasla 4–6 kat daha fazla verim artışı sağlar.- ASP.NET istekleri kuyrukta birikirse, yanıt sürelerini düşük tutmak için yoğun işleme işlemlerini barındırılan bir arka plan hizmetine veya mesaj kuyruğuna taşıyın.
2. Headless Chrome başlatma maliyetini azaltın
IronPDF kendi Chromium sürümünü sunar, ancak her bir görüntüleme işlemi küçük bir başlangıç maliyeti gerektirir. Havuzlama yardımcı olur ve Linux kapsayıcıları iki yerel kütüphane içermelidir:
RUN apt-get update && \
apt-get install -y --no-install-recommends libnss3 libatk1.0-0
Herhangi bir kütüphanenin eksik olması, Docker günlüklerinde libnss3.so not found hatası olarak görünür.
Önerilen Chrome bayrakları (IronPDF tarafından otomatik olarak uygulanır), konteynerlerdeki bellek ve kök kullanıcı sorunlarını azaltmak için --disable-gpu ve --no-sandbox'yi içerir.
3. RenderDelay veya WaitFor ile geç JavaScript'i bekleyin
DOMContentLoaded'den sonra sayaçları canlandıran veya veri alan sayfalar için kısa bir gecikme gerekebilir:
renderer.RenderingOptions.RenderDelay = 200; // ms
// OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')";
renderer.RenderingOptions.RenderDelay = 200; // ms
// OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')";
renderer.RenderingOptions.RenderDelay = 200 ' ms
' OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')";
Özel vaatler ve DOM yoklaması için özel WaitFor eğitimine bakın.
4. Bir istek için hata ayıklama günlüğünü etkinleştirin
renderer.LoggingOptions.DebugMode = true;
renderer.LoggingOptions.LogsToConsole = true;
renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log";
renderer.LoggingOptions.DebugMode = true;
renderer.LoggingOptions.LogsToConsole = true;
renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log";
renderer.LoggingOptions.DebugMode = True
renderer.LoggingOptions.LogsToConsole = True
renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"
Canlı DevTools izlemeleri, kodu yeniden derlemeye gerek kalmadan eksik yazı tiplerini, 404 hatalı resimleri ve zamanlama olaylarını ortaya çıkarır.
5. Yeniden oluşturmak yerine şablon PDF'leri yeniden kullanın
Fatura baskıları için, [[name]] gibi yer tutucular içeren bir şablon PDF oluşturun ve karmaşık HTML'yi yeniden oluşturmak yerine metin değiştirme işlemi gerçekleştirin. 10 kat daha hızlı ve bellek kullanımı daha azdır.
Hızlı Ayarlama Kontrol Listesi
`Parallel.ForEach`, `async/await`, tek bir `ChromePdfRenderer`
Kullanım `aspnet:8.0-jammy`; `libnss3` + `libatk1.0-0`; bayraklar `--no-sandbox`, `--disable-gpu`
`RenderDelay`, `WaitFor()`, yavaş SPA yüklemeleri için DevTools zaman çizelgesini günlüğe kaydedin
Daha Fazla Bilgi
- Nasıl Yapılır – Asenkron / çoklu iş parçacığı ile PDF'ler oluşturma
- Sorun Giderme – Performans yardım merkezi
- Örnek – İş parçacıklı görüntüleme demosu
Ücretsiz deneme sürümünü nereden indirebilirim, lisans seçebilirim ve uzman desteğini nereden bulabilirim? {#anchor-10-resources}
_Ücretsiz Denemeyi Başlat_ formundan anında 30 Günlük Deneme anahtarı verilir ve bu anahtar, HTML'den PDF'ye dönüştürme, dijital imzalar ve şifreleme dahil olmak üzere tüm özelliklerin filigran olmadan kullanılmasını sağlar.
Kütüphaneyi değerlendirdikten sonra, süresiz geliştirici, dağıtım veya Enterprise Lisansı'ndan birini seçin; Her plan, ücretsiz küçük güncellemeler, geliştirme/deneme/üretim kullanım hakları ve 30 günlük para iade garantisi içerir. Anahtarın uygulanması tek satırlık bir koddur (IronPdf.License.LicenseKey = "YOUR-KEY";) ve CI/CD boru hatlarında otomatikleştirilebilir.
Kapsamlı belgeler (hızlı başlangıç kılavuzları, API Referansı ve eğitim videoları) doküman portalında bulunur ve her .NET sürümüyle birlikte güncellenir.
Mühendislikle ilgili sorular, Chicago merkezli destek ekibi tarafından canlı sohbet, e-posta veya telefon yoluyla bir iş günü içinde yanıtlanır.
Performans ayarlama ve dağıtımla ilgili SSS'ler, Performans Yardım Merkezi'nde bir araya getirilmiştir.
Hızlı bağlantılar
| Kaynak | URL | Neden önemli? |
|---|---|---|
| 30 Günlük Deneme anahtarı alın | https://ironpdf.com/demos/ |
Filigran olmadan tüm özelliklerin kilidini açar |
| Lisanslama ve fiyatlandırma | https://ironpdf.com/licensing/ |
Süresiz veya abonelik planları; Iron Suite, 10 kütüphaneyi bir araya getirir |
| API Referansı | https://ironpdf.com/object-reference/api/ |
Tam sınıf belgeleri, ör. ChromePdfRenderer |
| Doküman portalı | https://ironpdf.com/docs/ |
Kılavuzlar, öğreticiler, örnek projeler |
| Performans desteği | https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/ |
Optimizasyon ve ölçeklendirme ipuçları |
| Destek ile iletişime geçin | https://ironsoftware.com/contact-us/ |
Canlı sohbet, e-posta, telefon desteği |
Sonraki adımlar
- MVC görünüm oluşturmadan AES-256 şifrelemeye kadar tüm önemli özellikleri gösteren örnek depoyu kopyalayın.
- Deneme anahtarını mevcut bir çözüme takın ve platformlar arası uyumluluğu doğrulamak için birim testlerini çalıştırın.
- Projeye özel öneriler almak için mühendislik ekibiyle canlı bir demo randevusu alın.
Bu kaynaklar sayesinde, herhangi bir .NET ekibi tek bir sprint içinde piksel mükemmelliğinde PDF'leri üretime (yerel, Docker veya sunucusuz) gönderebilir.
Sıkça Sorulan Sorular
.NET Core'ta HTML'yi PDF'ye nasıl dönüştürebilirim?
.NET Core'da HTML'yi PDF'ye dönüştürmek için IronPDF kütüphanesini kullanabilirsiniz. İlk olarak, IronPDF NuGet paketini kurun, ardından bir ChromePdfRenderer örneği oluşturun. HTML dizelerini PDF'lere dönüştürmek için RenderHtmlAsPdf yöntemini kullanın.
Bir web sitesi URL'sini PDF belgesine nasıl dönüştürürüm?
Bir web sitesi URL'sini PDF belgesine dönüştürmek için, IronPDF NuGet paketini kurun, bir ChromePdfRenderer örneği oluşturun ve URL'yi PDF olarak işlemek için RenderUrlAsPdf yöntemini kullanın. Sonuç, SaveAs yöntemi kullanılarak kaydedilebilir.
Razor görünümlerini PDF'lere dönüştürmenin en iyi yolu nedir?
Razor görünümlerini PDF'lere dönüştürmenin en iyi yolu IronPDF kullanmaktır. İlk olarak, Razor görünümünü bir HTML dizesine dönüştürün, ardından bu dizeyi bir PDF belgesi oluşturmak için RenderHtmlAsPdf yöntemine iletin.
PDF belgelerimin güvenliğini nasıl artırabilirim?
PDF güvenliğini artırmak için IronPDF kullanarak AES-256 şifreleme uygulayın, şifreler belirleyin ve kullanıcı izinlerini kontrol edin. Yazdırma ve düzenleme gibi eylemleri kısıtlamak için bu ayarları SecuritySettings özelliği aracılığıyla yapılandırın.
PDF render'ı özelleştirmek için hangi seçenekler mevcut?
IronPDF, ChromePdfRenderOptions sınıfı aracılığıyla kağıt boyutu, yönlendirme, kenar boşlukları ayarlama ve CSS medya türlerini uygulama dahil çeşitli render seçenekleri sunar. Ayrıca, özelleştirilmiş belge çıktısı için başlık, altbilgi ve filigran ekleyebilirsiniz.
Bir PDF oluşturma uygulamasını Docker konteynerine nasıl dağıtabilirim?
Bir PDF oluşturma uygulamasını Docker konteynerinde dağıtmak için, Dockerfile'daki Linux bağımlılıklarını yapılandırın ve kullanıcı izinlerini ayarlayın. Otomatik bağımlılık yönetimi için IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig kullanın.
C# kullanarak bir PDF'e filigran nasıl ekleyebilirim?
PDF'lere filigran eklemek için IronPDF kullanarak, HtmlStamp nesneleri ile Watermark özelliğini kullanabilirsiniz. İleri düzey seçenekler için, HtmlStamper sınıfı özelleştirilmiş konumlandırma ve saydamlık efektleri sağlar.
PDF belgelerine dijital imzalar ekleyebilir miyim?
Evet, IronPDF ile PdfSignature sınıfını kullanarak PDF'lere dijital imzalar ekleyebilirsiniz. Bir PdfDocument üzerinde Sign metodunu kullanarak ve belge bütünlüğü ile doğruluğunu sağlamak için bir sertifika dosyası sağlayarak bunu yapabilirsiniz.
.NET Core'da PDF oluşturma performansını nasıl optimize edebilirim?
PDF oluşturma performansını iyileştirmek için ChromePdfRenderer örneğini tekrar kullanarak, çoklu iş parçacığını etkinleştirerek ve gereksiz başsız-Chrome başlatma bayraklarını daraltarak optimize edin. Bu uygulamalar, uygulamanızın verimliliğini artırmaya yardımcı olur.
Bu öğreticideki .NET Core HTML'den-PDF'e örnek .NET 10 ile de çalışıyor mu?
Evet. IronPDF, .NET 10 ile tamamen uyumludur, bu yüzden bu eğitimdeki ChromePdfRenderer HTML-to-PDF örneğini .NET 10 projelerinde çekirdek kodu değiştirmeden kullanabilirsiniz. Ana fark, projeyi oluştururken .NET 10'u hedeflemeniz ve ardından HTML, Razor görünümleri veya URL'lerden piksel mükemmeliyetinde PDF'ler oluşturmak için NuGet'ten en son IronPdf paketini yüklemenizdir.

