.NET Core'da PDF Dosyaları Nasıl Üretilir

Convert HTML to PDF in .NET Core using C# with IronPDF

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

Modern .NET uygulamalarında, doğrudan HTML'den yüksek sadakatli PDF'ler üretmek rutin bir gereksinimdir: raporlar, faturalar ve biletler, web arayüzüne uygun, pikselle mükemmel çıktıya ihtiyaç duyar. IronPDF, HTML, Razor görünümleri ve tam web sitelerini standartlarla uyumlu PDF belgelerine render eden tek bir C# API sunarak bu iş akışını düzene sokar. Bu kılavuzun sonunda, bir geliştirici bir URL'yi, ham HTML'yi veya MVC görünümlerini bir ASP.NET Core projesinde çevirebilmek, ve aynı kodu Windows, Linux, Docker veya sunucusuz ortamlarda uygulamak mümkün olacak.

İpuçlarıIronPDF, PDF render edilmeden önce CSS, JavaScript ve medya sorgusu tuhaflıklarını teşhis etmek için başlıksız Chrome hata ayıklayıcısıyla tasarım sorunlarını giderir. Derinlemesine teknikler için özel piksel-mükemmel HTML'den PDF'ye kılavuzu inceleyin.

Hızlı Başlangıç: .NET Core'da HTML'den PDF Oluşturun

IronPDF kütüphanesini kullanarak .NET Core'da HTML'yi kolaylıkla PDF'ye dönüştürün. Bu kılavuz, HTML içeriğini minimum kod ile yüksek kaliteli bir PDF'ye çevirmek için hızla başlayabilmeniz için basit bir örnek sunar. Uygulamalarında kolaylıkla PDF oluşturmayı birleştirmek isteyen geliştiriciler için mükemmeldir.

  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.

    var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>");
  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

Hızlı Başlangıç Kontrol Listesi

  1. KurulumInstall-Package IronPdf
  2. Bir URL'yi Render EtmeChromePdfRenderer.RenderUrlAsPdf()
  3. Ham HTML Render EtmeChromePdfRenderer.RenderHtmlAsPdf()
  4. Bir Razor görünümünü Dışa AktarmaChromePdfRenderer.RenderHtmlAsPdfAsync()
  5. Çıkışı ince ayar – yararlanın ChromePdfRenderer.RenderingOptions

Bu Eğitici Neleri Kapsıyor

  • URL, HTML dizesi ve Razor görünüm dönüştürme
  • Kağıt, kenar boşluğu ve medya türü yapılandırması
  • Platformlar arası dağıtım (Windows, Linux, Docker)
  • İşlem sonrası: birleştirme, filigran, parola ile koruma ve PDF'leri dijital olarak imzalama
  • Uçtan uca örnek: bilet rezervasyon MVC uygulaması

.NET Core'a PDF kütüphanesini nasıl yüklerim?

Kütüphanenin yüklenmesi, herhangi bir .NET 8 projesinde tek satırdır ve .NET 9 önizleme ve upcoming .NET 10 sürümü ile ileri uyumludur. NuGet'in Paket Yöneticisi Konsolunu kullanın ve paket yöneticisi tüm bağımlılıkları otomatik olarak Windows, Linux, Docker ve sunucusuz hedefler için çözer.

PM> Install-Package IronPdf             # .NET 8 LTS and higher
PM> Install-Package IronPdf             # .NET 8 LTS and higher
SHELL

Lütfen dikkate alinCLI'ye mi ihtiyaçınız var? Aynı komut projeniz içindeki dotnet add package IronPdf ile çalışır.

Yüklendikten sonra, herhangi bir herkese açık URL'yi dönüştürerek her şeyin doğru 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")
$vbLabelText   $csharpLabel

Nasıl çalışır

  • ChromePdfRenderer, ayrı bir Chrome kurulumu gerektirmeden arka planda bir sanal Chromium örneği oluşturur.
  • RenderUrlAsPdf, JavaScript destekli içerik, CSS medya sorguları ve yazı tipleri dahil olmak üzere tam olarak render edilen DOM'u yakalar.
  • Oluşturulan PdfDocument, dökümanı birleştirme, şifre koruma veya dijital imzalama gibi yardımcı metotlar barındırır - bu özellikler bu öğreticide daha sonra ele alınmıştır.

Dağıtım ayrıntıları (Azure App Service, AWS Lambda, kurum içi Linux) hakkında daha fazla ayrıntı için, kurulum kılavuzu ve gelişmiş NuGet kurulumu sayfalarına bakın. Docker ve K8s kümeleri için iç CI/CD ipuçları Docker dağıtım en iyi uygulamaları içinde ele alınmaktadır.


.NET Core servisi bir canlı web sitesi URL'sini PDF'ye nasıl dönüştürebilir?

Tek bir RenderUrlAsPdf çağrısı yeterlidir: Herhangi bir genel erişime açık URL'yi iletin ve IronPDF, tam olarak render edilmiş, standartlara uygun bir PDF döndürür. Aşağıdaki kod .NET 8 LTS'yi hedefler ve .NET 9 önizleme ile 2025'teki yaklaşan .NET 10 sürümünde değişmeden derlenir.

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

Neden çalışıyor

  • ChromePdfRenderer bir sanal Chromium örneği oluşturur - sistemde Chrome bağımlılığını ortadan kaldırarak Docker görüntülerini ince tutar.
  • RenderUrlAsPdf, DOM ve JavaScript bitene kadar bekler, böylece tek sayfa uygulamaları doğru şekilde render edilir.
  • CssMediaType 'u Yazdırma olarak ayarlamak, motorun belirli yazdırma kurallarını kullanmasını, bir tarayıcının Yazdır → PDF olarak Kaydet çıktısına uygun hale getirir.
  • Oluşturulan PdfDocument şifrelenebilir, dijital olarak imzalanabilir, birleştirilebilir veya rasterize edilebilir - bu özellikler sonraki bölümlerde ele alınmıştır.

İpuçlarıPiksel mükemmelliğinde hata ayıklama: renderer.LoggingOptions.DebugMode = true etkinleştirin ve canlı DevTools'u incelemek için başsız-Chrome hata ayıklama kılavuzunu takip edin.

İlgili kaynaklar


Ham HTML'yi .NET Core'da PDF'ye nasıl dönüştürürüm?

Bir HTML dizesi—veya bir Razor görünümünün render edilmiş işaretlemesi—ChromePdfRenderer.RenderHtmlAsPdf ile geçtiğinde hemen standartlara uygun bir PDF oluşturur. Yöntem, IronPDF'nin gömülü Chromium motorunu başlatır, bu nedenle harici bir tarayıcı kurulumu veya WebView bağımlılığı gerekmez. Aşağıdaki kod .NET 8 LTS'de bugün derlenir ve Kasım 2025'de planlanan .NET 10 sürümü ve sonrası ile ileri uyumlu kalır.

Örnek — bir HTML parçasından PDF oluşturun

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

Kodun gösterdiği şey

  • Gömülü Chromium -- IronPDF, modern tarayıcılarla HTML5, CSS3 ve JavaScript eşdeğerliliğini garanti eden Chromium motoru ile birlikte gelir.
  • Tek bağımlılık -- Bir hafif bir NuGet kurulumu, ek sistem kütüphaneleri olmadan Windows, Linux, Docker ve Azure/AWS'yi kapsar.
  • Render seçenekleri -- PaperSize, CssMediaType ve RenderDelay, tarayıcı yazdırma ayarlarını yansıtır, böylece PDF'ler ekrandaki düzenlerle eşleşir.
  • Geleceğe yönelik hedefleme -- API yüzeyi, .NET 8, .NET 9 STS ve yaklaşan .NET 10'dan aynı kalır, bu nedenle uzun vadeli bakım minimaldir.
  • Son işlem kancaları -- PdfDocument, dokümanı birleştirme, parola koruması ve dijital imzalar için yardımcı araçları barındırır; her biri bu kılavuzun ilerleyen bölümlerinde ele alınmıştır.

Daha fazla okuma: adım adım HTML-dizesi-PDF öğreticisine ve tam ChromePdfRenderer API belgesine bakın.


Bir ASP .NET Core MVC görünümü PDF olarak nasıl dışa aktarılır?

IronPDF, tam olarak işlenmiş bir Razor görünümü ( .cshtml ) bir tarayıcı ile aynı şekilde render eder ve sonucu bir PdfDocument olarak aktarır. Aşağıdaki iş akışı, denetleyici mantığını temiz tutar, tarayıcı eklentileri gerektirmez ve .NET 8 LTS, .NET 9 önizleme ve Kasım 2025'te planlanan .NET 10 sürümü ile ç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
$vbLabelText   $csharpLabel

Bu kod neyi anlatıyor

  • Geçici dosyalar yok -- Razor görünümü hafızada render edilir, ardından doğrudan RenderHtmlAsPdf'e geçirilir, disk G/Ç ve temp-klasör yarış durumu'ndan kaçınılır.
  • Bilet boyutunda çıktı -- PaperSize = A5 ve dar kenar boşlukları, evde yazdırılan biletlerin kompakt kalmasını sağlar.
  • Tutarlı yazdırma stilleri -- CssMediaType = Print, tarayıcıların kullandığı aynı @media print CSS kurallarını uygular.
  • İkili akış -- pdf.BinaryData, belgeyi dosya sistemine dokunmadan akışa aktarır; API uç noktaları ve Lambda işlevleri için idealdir.
  • Tekrar kullanılabilir render edici -- ChromePdfRenderer her denetleyici için bir kez oluşturulur ve ardından yeniden kullanılır, işlem başlatma yükünü en aza indirir.

KağıtBüyüklüğü, KağıtYönü, KağıtGenişliğineUygun

Kenar Boşlukları, Üstbilgi, Altbilgi, Filigran

Sonraki adım: şifreleme, dijital imzalar ekleyin veya birden fazla bileti tek bir dosyada birleştirin. Birleştirme örneğine ve dijital imza nasıl yapılır kılavuzuna bakın.


Rendirmeden önce kağıt boyutunu, kenar boşluklarını, üstbilgileri, filigranları ve güvenliği nasıl ince ayar yapabilirim?

IronPDF, çıkışın her yönünü kontrol eden tek bir ChromePdfRenderOptions nesnesini ortaya çıkarır—kağıt boyutları, yönlendirme, üstbilgiler ve altbilgiler, JavaScript zamanlaması, filigranlar, şifreleme ve dijital imzalar—ek ekstra tarayıcı eklentilerine gerek yok.

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

Bu seçenekler neden önemlidir

  • PaperSize, Margins ve CssMediaType, tarayıcıların yazdırma diyalog penceresini yansıtır, böylece ekrandaki düzenler ve PDF, Windows, Linux ve Docker üzerinde aynı kalır.
  • HTML üstbilgileri ve altbilgileri Razor belirteçlerini, CSS ve JavaScript'i destekler—dinamik sayfa numaraları veya markalama için kullanışlıdır.
  • HtmlStamp, tek bir satır ile markalı filigranlar oluşturmanızı sağlar tam HTML + CSS kontrolü ile.
  • Güvenlik seçenekleri üçüncü taraf araçlara ihtiyaç duymadan 128-bit şifreleme, sahip/kullanıcı parolaları ve ince ayar izinleri sağlar.
  • Dijital imzalar koda doğrudan bir kriptografik mühür ekler, yasal özgünlük ve tahrifat kanıtını korur.
  • ExtractAllText ve ExtractAllImages gibi çıkarım yardımcıları, analiz gerektiğinde süreci tersine çevirir.

Hızlı referans — Popüler ayarlar

KağıtBüyüklüğü, KağıtYönü, Kenar Boşlukları, CssMedyaTürü, RenderGecikmesi

HtmlÜstbilgi, HtmlAltbilgi, dinamik Razor yer tutucuları, sayfa numarası belirteçleri

Filigran, HtmlDamga, opaklık, hizalama

GüvenlikSeçenekleri, İmzalaVeDamgala, sahip / kullanıcı parolaları, sertifika mühürleme

Sonraki görevler: birden fazla PDF birleştirin, metin ve resimleri çıkarın ve Docker veya serversız dağıtım yapın. Çapraz platform uyumunu sağlamak için dağıtım bölümüne devam edin.


PDF üretim kodunu Linux ve Windows'ta Docker'a nasıl dağıtabilirim?

IronPDF, tek bir kendine yeten NuGet paketi olarak gönderilir, bu nedenle bir ASP.NET Core (veya konsol) uygulamasını hem Windows hem de Linux üzerinde kapsülleştirmek kolaydır. Anahtar, yayınlanan ikili dosyaları ince bir çalışma zamanına kopyalamak ve Linux'ta IronPDF'nin gerektirdiği (libnss3 ve libatk1.0-0) iki yerel kütüphaneyi eklemektir.

Çok aşamalı Dockerfile (Ubuntu 22.04)

Lütfen dikkate alinNeden çok aşamalı? SDK görüntüsü (aşama 1) projeyi derler; final çalışma zamanı görüntüsü (aşama 2) zayıf kalır — < 120 MB — çünkü yapı araçları atılır.

####### ---------- 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"]

Lütfen dikkate alinWindows kapsayıcıları? İkinci aşamayı mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022 ile değiştirin—ek paketler gerekmez çünkü Chromium DLL'leri paketlenmiştir.

Uçtan uca doğrulama skripti

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
SHELL
  • API işlemi, ChromePdfRenderer.RenderUrlAsPdf'yi dahili olarak çağırır, aynen Bölüm 2'de olduğu gibi.
  • IronPDF, kabı içine gömülü bir Chromium prosedürünü başlatır—başsız olarak işleyeceği için bir X sunucusu gerekmez.
  • Bellek kullanımı büyük işlenmeler sırasında bile 200 MB'ı geçmez.

İpuçlarıSorun giderme ipucu: Eğer kapsayıcı günlüklerinde bir "libnss3.so bulunamadı" hatası görülüyorsa, libnss3 ve libatk1.0-0'nin mevcut olduğunu doğrulayın. Alpine görüntüleri desteklenmez çünkü musl C library gerekli sembolleri barındırmaz.

Dahili kaynaklar


Mevcut PDF'ler .NET Core'da nasıl açılır, birleştirilir, filigran eklenir ve içerik çıkarılır?

IronPDF, ister IronPDF, ister Adobe® Acrobat, isterse üçüncü taraf araçlar tarafından oluşturulmuş olsun her PDF'yi, kalitede kayıp olmadan açılabilen, düzenlenebilen, güvenlik altına alınabilen ve tekrar kaydedilebilen birinci sınıf bir PdfDocument nesnesi olarak ele alır. Aynı API yüzeyi bugün .NET 8 LTS üzerinde çalışır ve .NET 9 ön izlemesinde ve yakında çıkacak .NET 10 sürümünde değişmeden derlenir.

Birleştirilmiş örnek — aç → birleştir → filigran ekle → çıkar

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

Neden önemli

  • Aç & BirleştirPdfDocument.FromFile herhangi bir standartlara uygun PDF'yi yükler, şifreli dosyalar dahil, PdfDocument.Merge ise tek bir çağrıda keyfi sayıda belgeyi birleştirir.
  • FiligranApplyStamp (takma ad HtmlStamp) tam anlamıyla şekillendirilmiş HTML/CSS kaplamalarını, logo, QR kodu veya çapraz metin olarak seçili sayfalara raster olmadan yerleştirir.
  • İçerik çıkarımıExtractAllText ve ExtractAllImages, sonraki arşivleme veya AI hatları için ham UTF-8 metni veya ikili görüntü akışlarını çeker.
  • Dijital imzalara hazır – aynı PdfDocument örneği, SignAndStamp ile mühürlenebilir, RFC 3161-uyumlu hash'leri üreterek ISO 32000-2 dijital imza gereklilikleri ile uyum sağlar.
  • 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üleyicileri ile uyumlu kalır.
  • Geleceğe dayanıklı – API, interop montajlarını ve Win32 GDI çağrılarını önler, böylece kod Windows, Linux, Docker ve gelecekteki .NET 10 sunucusuz SKU'ları üzerinde değişmeden çalışır.

Sayfaları böl, döndür veya silme ihtiyaçı mı var? Ayrıntılı işlemler için sayfa düzeyinde düzenleme eğitimine bakın.


PDF'ler .NET Core'da nasıl şifrelenir ve dijital olarak imzalanır?

IronPDF, bir belgeyi iki adımda güvence altına alır: AES tabanlı şifreleme (kullanıcı/sahip şifreleri + ayrıntılı izinler) ve X.509 dijital imzaları dosyayı kriptografik bir karma ile mühürler. Her iki API de aynı PdfDocument nesnesi üzerinde yer alır, bu nedenle iş akışı .NET 8 LTS üzerinde bugün aynı, .NET 9 önizleme ve yaklaşan .NET 10 sürümünde değişmeden derlenir.

Örnek — 256-bit AES uygulayın, yazdırma 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")
$vbLabelText   $csharpLabel

Perde arkası

  • AES-256 şifreleme -- IronPDF, yükü NIST onaylı AES anahtarları ile sarar, izinsiz açmayı, yazdırmayı veya kopyala-yapıştırı engeller.
  • İzin ayrıntıları -- AllowUserPrinting ve AllowUserFormData gibi özellikler, eylem başına hakları değiştirir; herhangi bir kısıtlamanın etkili olabilmesi için bir sahip şifresi gereklidir.
  • Dijital imzalar -- SignAndStamp, RFC 3161 zaman damgalarını ve sertifika zincirini yerleştirir, tahrifat kanıtı oluşturulan hash'leri Adobe® Acrobat ve diğer ISO 32000-2 görüntüleyiciler tarafından tanınan şekilde üretir.
  • Tek durak API -- hem şifreleme hem de imzalama, aynı PdfDocument örneğini değiştirir, çoklu dosya geçişlerinden kaçınılır ve dahili fontlar, katmanlar ve meta veriler korunur.

İpuçlarıSorun giderme ipucu: Adobe Reader "geçersiz imza" bildirirse, PFX'in güvenilir kök sertifika içerdiğinden ve location dizelerinin ASCII temiz olduğundan emin olun.

Temel güvenlik ayarları

PdfSecuritySettingsOwnerPassword, UserPassword, EncryptionAlgorithm, AllowUserPrinting

PdfDocument.SignAndStamp — PFX yol, yetki, konum, sebep, zaman damgası

Daha derin dalışlar için dahili kaynaklar


HTML-to-PDF performansı .NET Core'da nasıl optimize edilir ve ölçeklendirilir?

IronPDF'nin Chromium motoru, çoğu sayfayı modern donanımda < 1 s'de işler, ancak performans işlemleri toplu yapma, çok iş parçacığı etkinleştirme ve başlıksız Chrome yükünü azaltma ile katlanabilir. Aşağıdaki ipuçları, tüm .NET sürümlerine eşit olarak uygulanır.

1. Arka plan iş parçası havuzunda işlemleri toplu yapın

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

2. Başlıksız Chrome başlangıç maliyetini azaltın

IronPDF kendi Chromium yapısını birlikte gönderir, ancak her işlem küçük bir başlangıç vergisi getirir. Havuzlama yardımcı olur ve Linux konteynerleri iki yerel kütüphaneleri içermelidir:

RUN apt-get update && \
    apt-get install -y --no-install-recommends libnss3 libatk1.0-0

Missing either library manifests as a libnss3.so not found error in Docker logs.

Recommended Chrome flags (automatically applied by IronPDF) include --disable-gpu and --no-sandbox to reduce memory and root-user issues in containers.

3. Geç JavaScript'i beklemek için RenderDelay veya WaitFor kullanın

Sayfalar, DOMContentLoaded'den sonra sayaçları animasyon yapabilir veya veri çekebilir; 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')";
$vbLabelText   $csharpLabel

Özel sözler ve DOM sorgulama için özel WaitFor eğitimi bölümüne bakın.

4. Bir istek için hata ayıklama günlüklerini 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"
$vbLabelText   $csharpLabel

Canlı DevTools izleyicileri, eksik yazı tiplerini, 404 resimlerini ve zamanlama olaylarını, kodu derlemeye gerek kalmadan gösterir.

5. Tekrar işlemeden önce PDF şablonlarını yeniden kullanın

Fatura çalıştırmaları için, [[name]] gibi yer tutucularla bir şablon PDF oluşturun ve karmaşık HTML'yi yeniden oluşturmaktan ziyade metin değiştirme yapın. Bu işlem 10× daha hızlıdır ve bellek açısından hafiftir.

Hızlı Ayarlama Kontrol Listesi

Parallel.ForEach, async/await, tek bir ChromePdfRenderer yeniden kullanın

aspnet:8.0-jammy kullanın; libnss3 + libatk1.0-0 kurun; bayraklar --no-sandbox, --disable-gpu

RenderDelay, WaitFor(), yavaş SPA hidrate etmeleri için DevTools zaman çizelgesini günlüğe kaydedin

Daha Fazla Okuma


Ücretsiz deneme nasıl indirilir, lisans seçilir ve uzman desteği nerede bulunur? {#anchor-10-resources}

30 günlük deneme anahtarı anında Ücretsiz Denemeye Başla formundan alınır ve HTML-to-PDF, dijital imzalar ve şifreleme dahil her özelliği—filigran olmadan—kilitlemez.

Kütüphaneyi değerlendirmenizin ardından, süresiz bir geliştirici, dağıtım veya şirket lisansı seçiniz; her plan ücretsiz küçük güncellemeler, geliştirme/sürüm/onay kullanım hakları ve 30 günlük para iade garantisi içerir. Anahtarı uygulamak, bir satır koddur (IronPdf.License.LicenseKey = "YOUR-KEY";) ve CI/CD hatlarına otomatikleştirilebilir.

Kapsamlı belgeler—hızlı başlangıç kılavuzları, API referansı ve tutorial videoları—doküman portalında bulunur ve her .NET sürümü için güncellenir.

Mühendislik sorularına bir iş günü içinde canlı sohbet, e-posta veya telefonla Chicago tabanlı destek ekibi tarafından yanıt verilir.

Performans ayarlama ve dağıtım SSS'leri, Performans Yardım Merkezinde 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 her özelliği kilitle
Lisanslama & fiyatlandırma https://ironpdf.com/licensing/ Süresiz veya abonelik planları; Iron Suite 10 kitaplığı bir araya getirir
API referansı https://ironpdf.com/object-reference/api/ Tam sınıf dokümanları, örn. ChromePdfRenderer
Belgeler portalı https://ironpdf.com/docs/ Kılavuzlar, eğitici videolar, örnek projeler
Performans yardımı https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/ Optimizasyon ve ölçeklendirme ipuçları
Destek ile iletişim https://ironsoftware.com/contact-us/ Canlı sohbet, e-posta, telefon desteği

Sonraki adımlar

  1. Örnek depo klonla her önemli özelliği—MVC görünüm işlemeden AES-256 şifrelemeye kadar—demonstrasyon yapar.
  2. Deneme anahtarı ekle var olan bir çözüme ekleyin ve çapraz-platform uyumluluğunu doğrulamak için birim testlerini çalıştırın.
  3. Canlı bir demo rezervasyon yapın mühendislik ekibi ile proje özel tavsiyeleri için.

Bu kaynaklarla, herhangi bir .NET ekibi tek sprint içinde prodüksiyona—yerel, Docker'da veya sunucusuz,—piksel mükemmelliğinde PDF'ler gönderebilir.

Sıkça Sorulan Sorular

.NET Core ile HTML'yi PDF'ye nasıl dönüştürebilirim?

HTML'yi .NET Core'da PDF'ye dönüştürmek için IronPDF kütüphanesini kullanabilirsiniz. İlk olarak, IronPDF NuGet paketini yükleyin, ardından bir ChromePdfRenderer örneği oluşturun. HTML dizgilerini 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ürebilirim?

Bir web sitesi URL'sini PDF belgesine dönüştürmek için IronPDF NuGet paketini yükleyin, bir ChromePdfRenderer örneği oluşturun ve URL'yi bir PDF'ye 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. Öncelikle, Razor görünümünü bir HTML dizgisine dönüştürün, ardından bu dizgiyi bir PDF belgesi oluşturmak için RenderHtmlAsPdf yöntemine iletin.

PDF belgelerimin güvenliğini nasıl artırabilirim?

PDF güvenliğini IronPDF kullanarak AES-256 şifrelemesi uygulayarak, parolalar ayarlayarak ve kullanıcı izinlerini kontrol ederek artırabilirsiniz. Yazdırma ve düzenleme gibi eylemleri kısıtlamak için bu ayarları SecuritySettings özelliği üzerinden yapılandırın.

PDF işleme özelleştirme seçenekleri nelerdir?

IronPDF, ChromePdfRenderOptions sınıfı üzerinden çeşitli işleme seçenekleri sunar, bunlar arasında kağıt boyutu, yönlendirme, kenar boşlukları ve CSS medya türleri ayarlama bulunur. Ayrıca, özelleştirilmiş belge çıktısı için başlıklar, altbilgiler ve filigranlar ekleyebilirsiniz.

Bir PDF oluşturma uygulamasını bir Docker konteynerinde nasıl dağıtırım?

Bir PDF oluşturma uygulamasını bir Docker konteynerinde dağıtmak için Dockerfile dosyanızda 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'ye filigran nasıl eklerim?

IronPDF kullanarak, HtmlStamp nesneleriyle Watermark özelliğini kullanarak PDF'lere filigran ekleyebilirsiniz. Gelişmiş seçenekler için, HtmlStamper sınıfı özel konumlandırma ve şeffaflık efektleri sağlar.

PDF belgelerine dijital imzalar ekleyebilir miyim?

Evet, IronPDF'in PdfSignature sınıfını kullanarak PDF'lere dijital imzalar ekleyebilirsiniz. Belirli bir sertifika dosyası sağlayarak PdfDocument üzerinde Sign yöntemini kullanın ve belgelerin bütünlüğünü ve özgünlüğünü sağlayın.

.NET Core'da PDF oluşturma performansını nasıl optimize ederim?

Thread-safe bir ChromePdfRenderer örneğini yeniden kullanarak, çoklu iş parçacığı etkinleştirerek ve gereksiz headless-Chrome başlangıç ​​bayraklarını kırparak PDF oluşturma performansını optimize edin. Bu uygulamalar, uygulamanızın verimliliğini artırmaya yardımcı olur.

Bu eğitimdeki .NET Core HTML'den PDF'ye örnek aynı zamanda .NET 10 ile de çalışıyor mu?

Evet. IronPDF, .NET 10 ile tamamen uyumludur, bu nedenle bu eğitimin ChromePdfRenderer HTML'den PDF'ye örneğini .NET 10 projelerinde çekirdek kodunu 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 pikselleme mükemmel PDF'ler üretmek için en son IronPdf paketunu NuGet'ten yüklemenizdir.

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.