Altbilgi içeriğine atla
IRONPDF KULLANARAK

HTML'den PDF uretme: Classic ASP ve IronPDF kullanarak nasıl yapılır

PDF belgelerini doğrudan bir web tarayıcısında görüntülemek, modern ASP.NET Core uygulamaları için yaygın bir gerekliliktir. Fatura, rapor veya sözleşme oluşturuyor olun, kullanıcılar dosyaları indirmeden veya üçüncü taraf eklentileri (Adobe Acrobat Reader gibi) kurmadan sorunsuz bir PDF görüntüleme deneyimi bekler. IronPDF, Chrome tabanlı bir render motoru aracılığıyla sunucu tarafında PDF oluşturma ve akış sağlayarak bunu basit hale getirir -- dışarıdan görüntüleyici bağımlılığı gerektirmez.

Bu eğitim, ASP.NET Core'da IronPDF kullanarak PDF dosyalarını görüntüleme, kaydetme ve yazdırmayı adım adım açıklar. Ayrıca, kütüphanenin konteyner ve bulut dağıtımları nasıl ele aldığını öğrenerek, üretim DevOps boru hatları için güvenilir bir seçim olmasını sağlar.

IronPDF C# PDF Kütüphanesi tanıtım afişi, HTML'den PDF'e dönüştürme, düzenleme araçları, dağıtım esnekliği ve ücretsiz deneme teklifi vurguluyor

Tarayıcılar PDF Dosyalarını Satır İçi Nasıl Görüntüler?

Modern tarayıcılar, application/pdf MIME türü ile gelen bir yanıt aldıklarında etkinleşen yerleşik PDF görüntüleyiciler içerir. ASP.NET Core denetleyiciniz doğru Content-Type başlığı ile bir PDF döndürdüğünde, tarayıcı bunu otomatik olarak yerleşik olarak görüntüler - eklenti kurulumu gerekmez. MDN Web Belgelerine göre, tarayıcıların dosya yanıtlarını nasıl ele aldığını kontrol etmek için doğru MIME türü yapılandırması esastır.

IronPDF, Chromium motorunu tamamen içine gömerek ChromePdfRenderer sınıfını kullanarak sunucu tarafında PDF'ler üretir. Bu, belgelerin tam CSS, JavaScript, web yazı tipleri, ve dijital imza desteği ile işleneceği anlamına gelir - Google Chrome'a güç veren aynı işleme hattı. Sonuç, tarayıcıların herhangi bir istemci tarafı görüntüleyici kütüphanesi olmaksızın satır içi olarak görüntülediği piksel mükemmel çıktıdır.

Konteynerleşmiş ortamlar için bu mimari özellikle değerlidir. Render işlemi tamamen işlem içinde çalışır, dış başsız tarayıcı süreçlerini başlatmadan veya uzak hizmetlere güvenmeden. Kaynak temizliği otomatik olarak gerçekleşir ve uzun süreli çalışan ASP.NET Core hizmetlerinde bellek kayıplarını önler. Sunulan tam IronPDF özellik listesini gözden geçirebilir ve sunulan komple render yeteneklerini anlayabilirsiniz.

PDF yazılımının özelliklerini gösteren dört sütunlu özellik ızgarası: PDF Oluşturma, PDF Dönüştürme, PDF Düzenleme ve PDF İmzalama ve Güvenliğini Sağlama, her kategori altında detaylı özellik listeleriyle

Sunucu Tarafı Render Neden Tutarlı Sonuçlar Üretir?

Sunucu tarafı render işlemi, PDF oluşturma sürecinden tarayıcı değişkenliğini ortadan kaldırır. PDF'ler istemci tarafında oluşturulduğunda, çıktı kalitesi, son kullanıcı tarayıcı sürümü, işletim sistemi ve yüklü yazı tiplerine bağlıdır. IronPDF ile, aynı Chromium motoru her sunucuda - ki bu Windows, Linux veya Docker kapsayıcısı olsun - çalışır, uyum belgeleri, faturalar ve imzalı sözleşmeler için aynı çıktıyı garantiler.

Chrome Motoru, Basit HTML'den PDF'ye Dönüştürücülerden Ne Sağlar?

Basit HTML'den PDF'ye dönüştürücüler genellikle JavaScript yürütülmüyor, CSS medya sorgularını yok sayıyor veya zayıf tipografi üretiyor. IronPDF'ün Chrome motoru, JavaScript'in tamamlanmasını bekler, @media print stillerine saygı gösterir, SVG grafiklerini işler, ve uluslararası içerik için UTF-8 karakter kodlamasını destekler. Bu sadakat, kullanıcıların hem görüntüleyeceği hem de arşivleyeceği belgeler için önemlidir.

IronPDF'i bir ASP.NET Core Projesinde Nasıl Kurarsınız?

Yeni bir ASP.NET Core projesi oluşturmak bir komut gerektirir. Bir terminal açın ve çalıştırın:

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
SHELL

Bir sonraki adımda, IronPDF NuGet paketini yükleyin. Paket Yöneticisi Konsolu veya .NET CLI'yi kullanabilirsiniz:

Install-Package IronPdf

Bu her şeyi kurar - Chrome motoru, PDF işleme kütüphaneleri ve tüm platforma özgü bağımlılıklar. IronPDF, ekstra çerçeve yapılandırmaya ihtiyaç duymadan .NET 6, 7, 8, 9 ve 10'u destekler. IronPDF belgeleri, boyut sınırlı dağıtımlar için ince paketler dahil çeşitli kurulum seçeneklerini kapsar, AWS Lambda gibi.

IronPDF NuGet paketinin yükleme ilerleme durumunu gösteren Visual Studio Paket Yöneticisi Konsolu, Iron Software bileşenleri, gRPC ve System.Threading.Channels dahil birden çok bağımlılık indirilmesini gösteriyor

Hangi Paket Varyantını Seçmelisiniz?

Standart dağıtımlar için IronPdf kullanın. AWS Lambda veya edge fonksiyonları gibi sıkı boyut sınırları olan ortamlar için, IronPdf.Slim paketi başlangıç indirme ayak izini azaltır. Her iki varyant da aynı API'yi sunar, bu nedenle geçiş yaparken kod değişikliği gerektirmez.

Konteyner Ortamlarında Yaygın Kurulum Sorunları Nelerdir?

Linux konteynerleri bazen grafik işlemleri için ek sistem kütüphanelerine ihtiyaç duyar. Minimal bir Dockerfile kurulumu şunları içerir:

apt-get update && apt-get install -y libgdiplus libc6-dev libx11-dev
apt-get update && apt-get install -y libgdiplus libc6-dev libx11-dev
SHELL

Windows konteynerleri genellikle ek bağımlılıklara ihtiyaç duymadan çalışır. Sorun gidermek için, HTTP 500 yanıtı olarak ortaya çıkmadan önce oluşturma hatalarını yakalamak için IronPDF'in yerleşik günlük kaydını etkinleştirin.

Bir PDF'yi Tarayıcıda Satır İçi Nasıl Görüntülersiniz?

Tarayıcı içi PDF görüntüleme için üç şey gereklidir: PDF'i oluşturmak, application/pdf MIME türünü ayarlamak ve File() sonucundan dosya adı parametresini çıkarmak. İşte tam bir kontrolcü eylemi:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();

// PdfController.cs
public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 100;

        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        // Omitting the filename tells the browser to display inline
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();

// PdfController.cs
public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 100;

        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        // Omitting the filename tells the browser to display inline
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
Dim app = builder.Build()
app.MapControllerRoute(name:="default", pattern:="{controller=Home}/{action=Index}/{id?}")
app.Run()

' PdfController.vb
Public Class PdfController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PrintHtmlBackgrounds = True
        renderer.RenderingOptions.CreatePdfFormsFromHtml = True
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.RenderDelay = 100

        Dim html = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " & DateTime.Now.ToString("yyyy-MM-dd") & "</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)

        ' Omitting the filename tells the browser to display inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Anahtar File() çağrısıdır: dosya adı olmadan application/pdf döndürüldüğünde Content-Disposition: inline ayarlanır, bu da tarayıcının yerleşik PDF görüntüleyicisini tetikler. Bir dosya adı eklemek Content-Disposition: attachment'e geçer, bu da bir indirme işlemini tetikler. Daha fazla HTML dönüştürme deseni için, HTML dizesinden PDF'ye kılavuzuna bakın.

Yüksek trafikli uygulamalar için, iş parçacıklarını engellemekten kaçınmak için async oluşturma yöntemini kullanın:

public async Task<IActionResult> ViewPdfAsync()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.Timeout = 60;

    var html = await GetHtmlContentAsync();
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);

    return File(pdf.BinaryData, "application/pdf");
}
public async Task<IActionResult> ViewPdfAsync()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.Timeout = 60;

    var html = await GetHtmlContentAsync();
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);

    return File(pdf.BinaryData, "application/pdf");
}
Imports System.Threading.Tasks

Public Async Function ViewPdfAsync() As Task(Of IActionResult)
    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.Timeout = 60

    Dim html = Await GetHtmlContentAsync()
    Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)

    Return File(pdf.BinaryData, "application/pdf")
End Function
$vbLabelText   $csharpLabel

Standart gezinme kontrollerine sahip web tabanlı bir PDF görüntüleyicisi içinde görüntülenen temel bir PDF faturası örneği

Async PDF Oluşturmayı Ne Zaman Kullanmalısınız?

Async oluşturma, eş zamanlı istekler alan herhangi bir uç nokta için önemlidir. Eşzamanlı oluşturma, ASP.NET Core iş parçacığı havuzu iş parçacıklarını engeller, bu da uygulamanızın aynı anda işleyebileceği istek sayısını azaltır. Async yöntemlerine erken geçin - API yüzeyi aynıdır, bu nedenle geçiş basittir.

Başka Hangi HTML Kaynaklarını Render Edebilirsiniz?

HTML dizelerinin ötesinde, IronPDF URL'lerden, diskteki HTML dosyalarından ve Razor görünümlerinden render alır. renderer.RenderUrlAsPdf("https://example.com/report") çağrısı canlı bir URL yakalar, renderer.RenderHtmlFileAsPdf("wwwroot/templates/invoice.html") yerel dosya sisteminden okur. Bu esneklik, ayrı HTML dosyaları bakımı olmadan mevcut Razor şablonlarını PDF şablonları olarak yeniden kullanabilmenizi sağlar. IronPDF için NuGet Galeri Listesi mevcut paket sürümünü ve sürüm notlarını gösterir.

ASP.NET Core'da PDF Dosya İndirmelerini Nasıl Etkinleştirirsiniz?

Satır içi görüntüleme yerine bir dosya indirmesi tetiklemek, tek bir parametre değişikliğidir. File() sonucuna bir dosya adı eklemek Content-Disposition başlığını attachment olarak ayarlar:

public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.ImageQuality = 85;

    var html = @"<h1>Quarterly Report</h1>
                 <p>Revenue this quarter exceeded projections by 12%.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");

    // Compress images to reduce download size
    pdf.CompressImages(30);

    // The filename parameter triggers download instead of inline view
    return File(pdf.BinaryData, "application/pdf", "quarterly-report-2026.pdf");
}
public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.ImageQuality = 85;

    var html = @"<h1>Quarterly Report</h1>
                 <p>Revenue this quarter exceeded projections by 12%.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");

    // Compress images to reduce download size
    pdf.CompressImages(30);

    // The filename parameter triggers download instead of inline view
    return File(pdf.BinaryData, "application/pdf", "quarterly-report-2026.pdf");
}
Public Function DownloadPdf() As IActionResult
    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.ImageQuality = 85

    Dim html As String = "<h1>Quarterly Report</h1>
                          <p>Revenue this quarter exceeded projections by 12%.</p>"
    Dim pdf = renderer.RenderHtmlAsPdf(html, "wwwroot/images")

    ' Compress images to reduce download size
    pdf.CompressImages(30)

    ' The filename parameter triggers download instead of inline view
    Return File(pdf.BinaryData, "application/pdf", "quarterly-report-2026.pdf")
End Function
$vbLabelText   $csharpLabel

Birçok kullanıcıya sunulan büyük belgeler için, akış peak bellek tüketimini azaltır:

public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var html = "<h1>Large Report</h1><p>Content spanning many pages.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);

    var stream = pdf.Stream;
    stream.Position = 0;

    // Stream directly without buffering the full byte array
    return File(stream, "application/pdf", "report.pdf");
}
public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var html = "<h1>Large Report</h1><p>Content spanning many pages.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);

    var stream = pdf.Stream;
    stream.Position = 0;

    // Stream directly without buffering the full byte array
    return File(stream, "application/pdf", "report.pdf");
}
Imports IronPdf

Public Function StreamPdf() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    Dim html As String = "<h1>Large Report</h1><p>Content spanning many pages.</p>"
    Dim pdf = renderer.RenderHtmlAsPdf(html)

    Dim stream = pdf.Stream
    stream.Position = 0

    ' Stream directly without buffering the full byte array
    Return File(stream, "application/pdf", "report.pdf")
End Function
$vbLabelText   $csharpLabel

Akış, büyük dosyaları eş zamanlı kullanıcılara sunarken peak bellek kullanımını önemli ölçüde azaltan PDF verilerini aşamalı bir şekilde gönderir. Ek ihracat paternleri için, PDF'leri birleştirme ve ayırma ve PDF'lerden metin çıkarmak üzerine kılavuza bakın.

IronPDF for .NET kullanılarak üretilen ve standart bir PDF görüntüleyici arayüzünde gösterilen bir PDF belgesi örneği

Farklı Belge Türleri İçin Hangi Sıkıştırma Ayarları En İyi Çalışır?

Metin ağırlıklı PDF'ler, %70-80 görüntü kalitesinde minimum görsel etki ile iyi sıkıştırılır. Görüntü açısından zengin belgeler, pazarlama broşürleri gibi, netliği korumak için %85-95 kaliteye ihtiyaç duyar. Grafikler içeren finansal raporlar, grafiğin okunabilirliğini korumak için %85 veya üzerinde kalmalıdır. Üretime geçmeden önce temsilci belgelerle sıkıştırma seviyelerini test edin.

ASP.NET Core'da Baskı Hazır PDF'ler Nasıl Üretilir?

Baskıya hazır PDF'ler, baskı CSS medya türü, tanımlı kenar boşlukları ve açıkça belirtilmiş kağıt boyutu gibi belirli sayfa yapılandırmalarını gerektirir. IronPDF, bunların hepsini RenderingOptions aracılığıyla sunar:

public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;

    // Add headers and footers for professional print output
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Confidential Document",
        DrawDividerLine = true
    };
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        FontSize = 10
    };

    var html = @"
        <style>
            @media print {
                .no-print { display: none; }
                .page-break { page-break-after: always; }
            }
        </style>
        <h1>Print-Ready Document</h1>
        <p>This document is formatted for A4 printing with standard margins.</p>
        <div class='page-break'></div>
        <h2>Page 2</h2>
        <p>Content continues on the second page.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;

    // Add headers and footers for professional print output
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Confidential Document",
        DrawDividerLine = true
    };
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        FontSize = 10
    };

    var html = @"
        <style>
            @media print {
                .no-print { display: none; }
                .page-break { page-break-after: always; }
            }
        </style>
        <h1>Print-Ready Document</h1>
        <p>This document is formatted for A4 printing with standard margins.</p>
        <div class='page-break'></div>
        <h2>Page 2</h2>
        <p>Content continues on the second page.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
Imports System.Web.Mvc

Public Function PrintablePdf() As ActionResult
    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
    renderer.RenderingOptions.MarginTop = 25
    renderer.RenderingOptions.MarginBottom = 25
    renderer.RenderingOptions.MarginLeft = 25
    renderer.RenderingOptions.MarginRight = 25

    ' Add headers and footers for professional print output
    renderer.RenderingOptions.TextHeader = New TextHeaderFooter With {
        .CenterText = "Confidential Document",
        .DrawDividerLine = True
    }
    renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
        .CenterText = "Page {page} of {total-pages}",
        .FontSize = 10
    }

    Dim html = "
        <style>
            @media print {
                .no-print { display: none; }
                .page-break { page-break-after: always; }
            }
        </style>
        <h1>Print-Ready Document</h1>
        <p>This document is formatted for A4 printing with standard margins.</p>
        <div class='page-break'></div>
        <h2>Page 2</h2>
        <p>Content continues on the second page.</p>"

    Dim pdf = renderer.RenderHtmlAsPdf(html)
    Return File(pdf.BinaryData, "application/pdf")
End Function
$vbLabelText   $csharpLabel

CssMediaType.Print ayarlanması, işlenmeden önce @media print CSS kurallarını etkinleştirir. Bu, gezinme çubuklarını, yan çubukları ve diğer yalnızca ekran için olan öğeleri gizler. Kullanıcılar, tarayıcının yerleşik görüntüleyicisini kullanarak, yazıcı seçimi ve kopya sayısı üzerinde tam kontrol ile PDF'yi yazdırabilir. Daha gelişmiş başlık ve altbilgi desenleri için başlık ve altbilgi kılavuzuna bakın.

Baskı belgelerine filigranlar da ekleyebilir, teslimattan önce dijital olarak imzalayabilir veya şifre ve izin ayarları ile koruyabilirsiniz. Bu özellikler, ayrı bir işleme adımı gerektirmeden doğrudan PdfDocument API'si aracılığıyla entegre edilir.

Tipik baskı çıktısı formatını göstererek standart bir PDF görüntüleyicisinde görünen baskıya hazır bir PDF belgesi örneği

Çapraz Yazıcı Uyumluluğunu Sağlayan Hangi Sayfa Yapılandırması?

Standart A4 veya Mektup boyutları ile 20-25mm kenar boşlukları tüm yazıcı modellerinde güvenilir bir şekilde çalışır. Dağıtım bilinen bir yazıcı filosuna hedeflenmediği sürece özel kağıt boyutlarından kaçının. Özel sayfa kırma yöntemleri yerine CSS page-break-before ve page-break-after özelliklerini kullanın. W3C CSS Sayfa Ortamı spesifikasyonu bu özellikleri ayrıntılı bir şekilde tanımlar. Bu standart CSS özellikleri, Chrome rendering motoru ve fiziksel yazıcılar arasında tutarlı çalışır.

Docker'a ASP.NET Core PDF Görüntüleyici Nasıl Yüklenir?

IronPDF, kod değişikliği gerektirmeden Linux ve Windows konteynerlerinde çalışır. Aşağıdaki Dockerfile'da kullanılan temel görüntüler, düzenli güvenlik yamaları ile sürdürülen Microsoft'un resmi .NET konteyner görüntülerinden alınmıştır. Aşağıdaki Docker yapılandırması, gerekli sistem kütüphanelerini yükler ve minimal görüntü boyutu için çok aşamalı bir yapı oluşturur:

FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app

RUN apt-get update && apt-get install -y \
    libgdiplus \
    libc6-dev \
    libx11-dev \
    && rm -rf /var/lib/apt/lists/*

FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY ["PdfViewerApp.csproj", "./"]
RUN dotnet restore "PdfViewerApp.csproj"
COPY . .
RUN dotnet build "PdfViewerApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "PdfViewerApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PdfViewerApp.dll"]

Kubernetes dağıtımları için, baştan sona PDF üretimini doğrulayan bir sağlık kontrolü uç noktası ekleyin:

builder.Services.AddHealthChecks()
    .AddCheck("pdf_generation", () =>
    {
        try
        {
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<p>Health check</p>");
            return pdf.PageCount > 0
                ? HealthCheckResult.Healthy()
                : HealthCheckResult.Unhealthy("PDF generation returned empty document");
        }
        catch (Exception ex)
        {
            return HealthCheckResult.Unhealthy(ex.Message);
        }
    });
builder.Services.AddHealthChecks()
    .AddCheck("pdf_generation", () =>
    {
        try
        {
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<p>Health check</p>");
            return pdf.PageCount > 0
                ? HealthCheckResult.Healthy()
                : HealthCheckResult.Unhealthy("PDF generation returned empty document");
        }
        catch (Exception ex)
        {
            return HealthCheckResult.Unhealthy(ex.Message);
        }
    });
Imports System
Imports Microsoft.Extensions.DependencyInjection
Imports Microsoft.Extensions.Diagnostics.HealthChecks

builder.Services.AddHealthChecks().AddCheck("pdf_generation", Function()
    Try
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<p>Health check</p>")
        Return If(pdf.PageCount > 0, HealthCheckResult.Healthy(), HealthCheckResult.Unhealthy("PDF generation returned empty document"))
    Catch ex As Exception
        Return HealthCheckResult.Unhealthy(ex.Message)
    End Try
End Function)
$vbLabelText   $csharpLabel

Bu sağlık kontrolü, Kubernetes'in kullanıcılar hatalarla karşılaşmadan sağlıksız podları tespit etmesine ve değiştirmesine olanak tanır. Ayrıca, standart ASP.NET Core sağlık izleme ara yazılımı ile entegre olur. IronPDF deneme lisansı Docker testi için kısıtlamalar olmaksızın tam işlevsellik içerir.

Sürec-içi Renderleyicinin Dağıtım Avantajları Nelerdir?

Aşağıdaki tablo, IronPDF'nin süreç içi yaklaşımını, sunucu tarafında PDF üretimi için yaygın olarak kullanılan başsız tarayıcı sunucu kurulumları ile karşılaştırır:

ASP.NET Core için PDF üretim yaklaşımlarının karşılaştırması
Faktör IronPDF (Sürec-içi) Başsız Tarayıcı Sunucu
Dağıtım karmaşıklığı Sadece NuGet paketi Ayrı süreç veya hizmet
Ağ gecikmesi Hiçbiri (sürec-içi) Her istek için HTTP gidiş-dönüş süresi
Konteyner ayak izi Tek konteyner Minimum iki konteyner
Sağlık izleme Standart ASP.NET Core ara yazılımı Ayrı hizmet sağlık kontrolü
Görselleştirme tutarlılığı Chrome motoru, kilitli sürüm Tarayıcı sürümüne göre değişir

Görüntüleyiciye Gelişmiş PDF Özelliklerini Nasıl Eklersiniz?

IronPDF, temel görüntüleme ve indirme işlevlerinin çok ötesine geçer. HTML'yi PDF'ye dönüştüren aynı kütüphane, PDF form işleme, özel filigranlar, dijital imzalar ve PDF'den görüntüye dönüştürme sunar -- ek paketler gerektirmeden.

Belge yönetimi iş akışları için, yüklenen dosyaları PDF'ye dönüştürebilir, metni indeksleme için çıkarabilir, belgeleri not ekleyebilir ve kullanıcıya geri teslim edebilirsiniz -- hepsi tek bir ASP.NET Core denetleyicisi içinde. IronPDF özellik sayfası, her özellik alanı için örnek kodlarla birlikte kapsamlı bir yetenek özetini sağlar.

Görüntüleyici uygulamaları için dikkat edilmesi gereken ana yetenekler:

PDF Güvenliğini ve Erişim Kontrolünü Nasıl Sağlarsınız?

Hassas belgeleri görüntüleyen uygulamalar için, IronPDF'nin parola ve izin özelliklerini ASP.NET Core'un yetkilendirme ara yazılımı ile birleştirin. Denetleyici işlemi kimlik doğrulama gerektirecek şekilde ayarlayın, ardından PDF'yi akışa verin -- belge asla dosya sistemine veya kimlik doğrulamayan bir uç noktaya dokunmaz.

Denetim izleme gereksinimleri için, PDF'leri akışa vermeden önce dijital olarak imzalayın. İmza, imzalama zaman damgasını kaydeder ve belge bütünlüğünü doğrular, bu da bir tarayıcı görüntüleyici üzerinden görüntülenen finansal ve yasal belgeler için önemlidir.

Hangi Lisans Seçenekleri Mevcuttur?

IronPDF lisanslaması tam işlevsellik içeren bir ücretsiz deneme ile başlar -- Docker ve Kubernetes ortamlarında geliştirme, aşamalandırma ve kavram kanıtlama çalışmaları için uygundur. Üretim lisansları, tek geliştiriciden sınırsız sunucu dağıtımlarına kadar bir dizi dağıtım senaryosunu kapsar.

IronPDF belgeleri, Windows, Linux, macOS, AWS ve Azure için ayrıntılı API referansları, .NET sürümleri arasında yükseltme için geçiş kılavuzları ve platforma özgü kurulum talimatları sağlar.

IronPDF offers flexible licensing options starting at $999 for single developers up to $3,999 for unlimited usage, with significant discounts currently available

IronPDF ile ASP.NET Core'a bir PDF görüntüleyicisi eklemek dakikalar alır. Chrome tabanlı render motoru, HTML'den PDF'e dönüştürmenin karmaşıklığını ele alır, ASP.NET Core File() sonucu satır içi ve indirme davranışını yönetir ve aynı paket baskı, filigran ekleme, dijital imzalar ve konteyner dağıtımları için uygundur. Ücretsiz deneme ile başlayın ve gereksinimler arttıkça gelişmiş belge özelliklerini ekleyin.

Sıkça Sorulan Sorular

IronPDF, ASP.NET Core uygulamalarında PDF'leri görüntülemeye nasıl yardım edebilir?

IronPDF, PDF dosyalarını doğrudan web tarayıcılarında görüntülemek için, ek indirmeler veya eklentilere gerek duyulmadan güçlü bir Chrome tabanlı render motoru kullanarak süreci basitleştirir.

ASP.NET Core'da bir PDF görüntüleyici kullanmanın avantajları nelerdir?

IronPDF gibi bir PDF görüntüleyici kullanmak, PDF'leri tarayıcıda sorunsuz şekilde görüntülemeyi, kaydetmeyi ve yazdırmayı mümkün kılarak kullanıcı deneyimini geliştirir, Adobe Acrobat Reader gibi harici uygulamalara olan ihtiyacı ortadan kaldırır.

IronPDF ile PDF'leri görüntülemek için Adobe Acrobat Reader yüklemem gerekiyor mu?

Hayır, IronPDF tarayıcıda PDF'leri doğrudan görüntülemeye olanak tanır, bu da Adobe Acrobat Reader veya başka eklentilere olan ihtiyacı ortadan kaldırır.

ASP.NET Core uygulamasında IronPDF kullanarak hangi tür belgeler görüntülenebilir?

IronPDF, ASP.NET Core uygulamaları içinde fatura, rapor ve sözleşmeler gibi çeşitli belge türlerini sorunsuz bir şekilde görüntülemek için kullanılabilir.

IronPDF, ASP.NET Core'da PDF belgelerinin yazdırılmasını destekliyor mu?

Evet, IronPDF web uygulamasından doğrudan PDF belgelerinin yazdırılmasını destekler ve eksiksiz bir PDF yönetim çözümü sunar.

IronPDF, ASP.NET Core'da kompleks PDF yerleşimlerini doğru bir şekilde görüntüleyebilir mi?

IronPDF, Chrome tabanlı bir render motoru kullanarak karmaşık PDF yerleşimlerini doğru bir şekilde işler, yüksek kaliteli bir görüntü sağlar ve aslına uygunluk kaybı olmadan sunar.

IronPDF kullanarak ASP.NET Core'da PDF dosyalarını görüntülemek için indirmeniz gerekir mi?

Hayır, IronPDF kullanıcılara PDF dosyalarını web tarayıcıda doğrudan görüntüleme olanağı sunar, indirilmelerine gerek kalmaz.

IronPDF, web uygulamalarında PDF görüntüleme deneyimini nasıl artırır?

IronPDF, ASP.NET Core ile sorunsuz entegrasyon sunarak kullanıcıların PDF'leri tarayıcıda doğrudan görüntülemesi, kaydetmesi ve yazdırmasına olanak tanıyarak PDF görüntüleme deneyimini geliştirir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara