Altbilgi içeriğine atla
IRONPDF KULLANARAK

HTML'i PDF'ye ASP.NET Core'da Nasıl Dönüştürursunuz

Bir ASP.NET Core uygulamasında PDF görüntüleyici oluşturmak, çoğu geliştiricinin beklediğinden daha kolaydır. PDF'leri sunucu tarafında üreterek ve doğru MIME türüyle geri döndürerek, belgeleri doğrudan herhangi bir modern tarayıcıda gösterebilirsiniz -- eklenti veya Adobe Acrobat Reader gerekmez. IronPDF, HTML, CSS ve JavaScript'i yüksek sadakatli PDF'lere dönüştüren Chrome tabanlı motoru üzerinden render işlemini yönetir ve bu PDF'ler tarayıcının yerleşik görüntüleyicisinde satır içi olarak görünür.

Bu eğitim, HTML dizelerinden oluşturulan PDF'leri görüntüleme, canlı URL'leri render etme, Razor görünümlerini dönüştürme, büyük dosyaları akıtma ve hepsini bir ASP.NET Core MVC kontrolcüsünde bağlama gibi her büyük senaryoyu adım adım açıklar. Kod örnekleri, üst düzey ifadelerle nerede uygulanabilir olduğunu hedefleyen .NET 10 ile hedeflenmiştir.

ASP.NET'te Tarayıcı Tabanlı PDF Görüntüleme Nasıl Çalışır?

Modern tarayıcılar bir yerleşik PDF görüntüleyici ile gelir. Bir sunucu Content-Type: application/pdf başlığı ile yanıt verdiğinde, tarayıcı belgeyi satır içine gömerek görüntüler, dosya indirmeyi tetiklemez. Anahtar, bu başlığı Content-Disposition: inline ile eşleştirmektedir.

Sunucu tarafında, göreviniz geçerli bir PDF ikili dosyası üretmek ve bunu bir FileResult üzerinden döndürmektir. Tarayıcı, herhangi bir ek UI kodu olmadan sayfa numaralandırma, yakınlaştırma, metin seçimi, arama, yazdırma ve indirme işlemlerini kendisi halleder.

IronPDF bu paternle doğal olarak uyumludur. Onun ChromePdfRenderer sınıfı HTML'yi (veya canlı bir URL'yi) PDF ikili dosyasına dönüştürür ve bu ikili dosyayı doğrudan ASP.NET'in File() yardımcısına geçirirsiniz. Sonuç, Chrome, Firefox, Edge ve Safari'de çalışan tam özellikli bir belge görüntüleyicisidir.

Modern tarayıcılar, yerel görüntüleme motorları aracılığıyla W3C PDF render spesifikasyonu'nu uygular, bu da sunucunuzun döndürdüğü herhangi bir uygun PDF'nin ek bir yapılandırmaya ihtiyaç duymadan düzgün bir şekilde görüntüleneceği anlamına gelir. IronPDF'in çıktısı tamamen standartlara uygundur, bu nedenle tarayıcı sürümleri arasında tutarlı render sağlanır.

Konteynerleşmiş dağıtımlar için, IronPDF resmi Docker görüntüleri sağlayarak Chromium bağımlılıklarını önceden yapılandırır, böylece her düğüme manuellen Chrome kurmanıza gerek kalmaz. Linux ve Windows konteynerleri her ikisi de desteklenir. PDF oluşturmayı bağımsız bir şekilde ölçeklendirmeniz gerekiyorsa, IronPDF Engine Docker görüntüsü render işlemini bağımsız bir mikro hizmet olarak çalıştırmanıza olanak tanır.

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

ASP.NET Core projenizi Visual Studio'da açın, ardından NuGet Paket Yöneticisi Konsolu aracılığıyla IronPDF'i yükleyin:

Install-Package IronPdf

Veya .NET CLI kullanın:

dotnet add package IronPdf

Yüklemeden sonra, herhangi bir IronPDF API'sini çağırmadan önce lisans anahtarınızı Program.cs'e ekleyin:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Azure'a dağıtım yapıyorsanız, lisans anahtarınızı Azure Key Vault veya App Configuration'da saklayın, doğrudan kodlamak yerine. AWS Lambda dağıtımları için, Lambda fonksiyon ayarlarınızda yapılandırılmış ortam değişkenlerini kullanın.

Tüm kurulum bu kadar. IronPDF, Windows üzerinde çalışırken Chromium'u otomatik olarak algılar ve yapılandırır. Linux üzerinde, gerekli olan birkaç sistem paketi için Linux kurulum kılavuzu'na bakınız.

Ücretsiz bir deneme ile başlayarak tüm özellik setini değerlendirebilir ve üretim için bir lisans katmanı seçmeden önce deneyebilirsiniz.

Bir HTML Dizesinden PDF Nasıl Oluşturur ve Gösterirsiniz?

Bir PDF'yi kullanıcıya sunmanın en hızlı yolu bir HTML dizesi oluşturarak satır içine gömülü olarak döndürmektir. PdfController adlı bir kontrolör oluşturun ve şöyle bir eylem ekleyin:

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();

public class PdfController : Controller
{
    private readonly ChromePdfRenderer _renderer;

    public PdfController()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.WaitFor.RenderDelay(100);
        _renderer.RenderingOptions.Timeout = 30;
    }

    public IActionResult DisplayFromHtml()
    {
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1   { color: #2c3e50; }
                    p    { line-height: 1.7; color: #444; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
            </body>
            </html>";

        PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);

        Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
        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();

public class PdfController : Controller
{
    private readonly ChromePdfRenderer _renderer;

    public PdfController()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.WaitFor.RenderDelay(100);
        _renderer.RenderingOptions.Timeout = 30;
    }

    public IActionResult DisplayFromHtml()
    {
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1   { color: #2c3e50; }
                    p    { line-height: 1.7; color: #444; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
            </body>
            </html>";

        PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);

        Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
        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()

Public Class PdfController
    Inherits Controller

    Private ReadOnly _renderer As ChromePdfRenderer

    Public Sub New()
        _renderer = New ChromePdfRenderer()
        _renderer.RenderingOptions.WaitFor.RenderDelay(100)
        _renderer.RenderingOptions.Timeout = 30
    End Sub

    Public Function DisplayFromHtml() As IActionResult
        Dim html As String = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1   { color: #2c3e50; }
                    p    { line-height: 1.7; color: #444; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
            </body>
            </html>"

        Dim pdf As PdfDocument = _renderer.RenderHtmlAsPdf(html)

        Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf")
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Render Edilen PDF Tarayıcıda Nasıl Görünür?

Tarayıcıda 'Örnek PDF Belgesi' başlığı ve 'Bu PDF, IronPDF kullanılarak ASP.NET Core'da oluşturulmuştur' metni ile localhost:7254/Pdf/DisplayFromHtml gözlemleniyor

ChromePdfRenderer, motorunda Chromium'u kullanır, bu yüzden CSS grid, flexbox, web yazı tipleri ve modern CSS özellikleri hepsi doğru şekilde render edilir. Content-Disposition'yi inline olarak ayarlamak, tarayıcıya dosyayı görüntülemesini, kaydetmek yerine göstermesini talimat verir. Bu değeri attachment olarak değiştirirseniz, tarayıcı kullanıcıdan indirebilmesi için uyarır.

Ayrıntılı düzenlemelere sahip belgeler için, özel kağıt boyutları, kenar boşlukları ve yazdırma CSS medya türü gibi render seçenekleri ile çıktıyı ince ayarlayabilirsiniz. Ağ gecikmesinin dış varlıkların yüklenmesini geciktirebileceği kapsayıcı ortamlarda özellikle kullanışlı olan WaitFor API bulunmaktadır.

HTML dönüşüm seçeneklerine daha derin bir bakış için, HTML dizesinden PDF'a kılavuzu inceleyin.

URL ve Razor Görünümlerinden PDF Dosyalarını Nasıl Render Edersiniz?

IronPDF, herhangi bir canlı web sayfasını PDF olarak yakalayabilir - web içeriğini arşivlemek veya mevcut sayfalardan rapor oluşturmak için idealdir. ASP.NET Core belgesi, burada kullanılan kalıp olan kontrolcü eylemleri sonuçlarının nasıl döndürüleceğini kapsar.

public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    renderer.RenderingOptions.WaitFor.NetworkIdle();

    PdfDocument pdf = renderer.RenderUrlAsPdf(url);

    Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf");
    Response.Headers.Append("Cache-Control", "public, max-age=3600");
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    renderer.RenderingOptions.WaitFor.NetworkIdle();

    PdfDocument pdf = renderer.RenderUrlAsPdf(url);

    Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf");
    Response.Headers.Append("Cache-Control", "public, max-age=3600");
    return File(pdf.BinaryData, "application/pdf");
}
Public Function RenderFromUrl(Optional url As String = "https://en.wikipedia.org/wiki/Main_Page") As IActionResult
    Dim renderer As New ChromePdfRenderer()
    renderer.RenderingOptions.EnableJavaScript = True
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    renderer.RenderingOptions.WaitFor.NetworkIdle()

    Dim pdf As PdfDocument = renderer.RenderUrlAsPdf(url)

    Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf")
    Response.Headers.Append("Cache-Control", "public, max-age=3600")
    Return File(pdf.BinaryData, "application/pdf")
End Function
$vbLabelText   $csharpLabel

URL Tabanlı PDF Render'ı Nasıl Gösterir?

IronPDF kullanılarak bir ASP.NET web uygulamasında render edilmiş Wikipedia ana sayfasını gösteren bir PDF görüntüleyici ekran görüntüsü, ana sayfa içeriği ve tam CSS stilini koruyan gezinti öğeleri

Bir Razor görünümü (örneğin bir fatura veya beyanat şablonu) dönüştürmeniz gerektiğinde, ilk önce görünümü bir HTML dizesine render edin, ardından bu dizeyi IronPDF'e iletin. Bu, şablonlarınızı hem web hem de PDF çıktısı arasında yeniden kullanılabilir hale getirir:

public async Task<IActionResult> ViewToPdf()
{
    var model = new InvoiceModel
    {
        InvoiceNumber = 1001,
        InvoiceDate   = DateTime.Now,
        CustomerName  = "Acme Corp.",
        Items = new List<ItemModel>
        {
            new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
            new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
        }
    };
    model.TotalAmount = model.Items.Sum(i => i.LineTotal);

    string htmlContent = await RenderViewToStringAsync("Invoice", model);

    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop    = 40;
    renderer.RenderingOptions.MarginBottom = 40;

    string baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl);

    return File(pdf.BinaryData, "application/pdf");
}

private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
    var actionContext = new ActionContext(
        HttpContext, RouteData, ControllerContext.ActionDescriptor);

    var viewEngine      = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
    var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
    var tempData        = tempDataFactory.GetTempData(HttpContext);

    ViewData.Model = model;

    var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
    if (!viewResult.Success)
    {
        string searched = string.Join(
            Environment.NewLine,
            viewResult.SearchedLocations ?? Array.Empty<string>());
        throw new InvalidOperationException(
            $"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}");
    }

    await using var writer      = new StringWriter();
    var             viewContext = new ViewContext(
        actionContext, viewResult.View, ViewData, tempData,
        writer, new HtmlHelperOptions());

    await viewResult.View.RenderAsync(viewContext);
    return writer.ToString();
}
public async Task<IActionResult> ViewToPdf()
{
    var model = new InvoiceModel
    {
        InvoiceNumber = 1001,
        InvoiceDate   = DateTime.Now,
        CustomerName  = "Acme Corp.",
        Items = new List<ItemModel>
        {
            new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
            new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
        }
    };
    model.TotalAmount = model.Items.Sum(i => i.LineTotal);

    string htmlContent = await RenderViewToStringAsync("Invoice", model);

    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop    = 40;
    renderer.RenderingOptions.MarginBottom = 40;

    string baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl);

    return File(pdf.BinaryData, "application/pdf");
}

private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
    var actionContext = new ActionContext(
        HttpContext, RouteData, ControllerContext.ActionDescriptor);

    var viewEngine      = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
    var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
    var tempData        = tempDataFactory.GetTempData(HttpContext);

    ViewData.Model = model;

    var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
    if (!viewResult.Success)
    {
        string searched = string.Join(
            Environment.NewLine,
            viewResult.SearchedLocations ?? Array.Empty<string>());
        throw new InvalidOperationException(
            $"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}");
    }

    await using var writer      = new StringWriter();
    var             viewContext = new ViewContext(
        actionContext, viewResult.View, ViewData, tempData,
        writer, new HtmlHelperOptions());

    await viewResult.View.RenderAsync(viewContext);
    return writer.ToString();
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.ViewEngines
Imports Microsoft.AspNetCore.Mvc.Rendering
Imports Microsoft.AspNetCore.Mvc.ViewFeatures
Imports Microsoft.Extensions.DependencyInjection
Imports IronPdf

Public Class YourController
    Inherits Controller

    Public Async Function ViewToPdf() As Task(Of IActionResult)
        Dim model As New InvoiceModel With {
            .InvoiceNumber = 1001,
            .InvoiceDate = DateTime.Now,
            .CustomerName = "Acme Corp.",
            .Items = New List(Of ItemModel) From {
                New ItemModel With {.Description = "Product A", .Quantity = 2, .UnitPrice = 50.0D},
                New ItemModel With {.Description = "Service B", .Quantity = 1, .UnitPrice = 150.0D}
            }
        }
        model.TotalAmount = model.Items.Sum(Function(i) i.LineTotal)

        Dim htmlContent As String = Await RenderViewToStringAsync("Invoice", model)

        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.MarginTop = 40
        renderer.RenderingOptions.MarginBottom = 40

        Dim baseUrl As String = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}"
        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent, baseUrl)

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

    Private Async Function RenderViewToStringAsync(viewName As String, model As Object) As Task(Of String)
        Dim actionContext As New ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor)

        Dim viewEngine As IRazorViewEngine = HttpContext.RequestServices.GetRequiredService(Of IRazorViewEngine)()
        Dim tempDataFactory As ITempDataDictionaryFactory = HttpContext.RequestServices.GetRequiredService(Of ITempDataDictionaryFactory)()
        Dim tempData As ITempDataDictionary = tempDataFactory.GetTempData(HttpContext)

        ViewData.Model = model

        Dim viewResult As ViewEngineResult = viewEngine.FindView(actionContext, viewName, isMainPage:=False)
        If Not viewResult.Success Then
            Dim searched As String = String.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty(Of String)())
            Throw New InvalidOperationException($"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}")
        End If

        Await Using writer As New StringWriter()
            Dim viewContext As New ViewContext(actionContext, viewResult.View, ViewData, tempData, writer, New HtmlHelperOptions())

            Await viewResult.View.RenderAsync(viewContext)
            Return writer.ToString()
        End Using
    End Function
End Class

Public Class InvoiceModel
    Public Property InvoiceNumber As Integer
    Public Property InvoiceDate As DateTime
    Public Property CustomerName As String
    Public Property Items As List(Of ItemModel)
    Public Property TotalAmount As Decimal
End Class

Public Class ItemModel
    Public Property Description As String
    Public Property Quantity As Integer
    Public Property UnitPrice As Decimal

    Public ReadOnly Property LineTotal As Decimal
        Get
            Return Quantity * UnitPrice
        End Get
    End Property
End Class
$vbLabelText   $csharpLabel

Razor Görünümünden PDF Oluşturmanın Sonuçları Nelerdir?

PDF invoice displayed in a web browser showing Invoice #1001 for Acme Corp with two line items totaling $250.00, demonstrating successful Razor view to PDF conversion

Razor görünümünüz göreli CSS veya resim yollarına başvuruyorsa, baseUrl parametresi önemlidir. Mevcut ana bilgisayar URL'sini geçirerek IronPDF'in bu yolları doğru şekilde çözmesine izin verir. Razor to PDF tutorial (Razor'dan PDF'e öğretici) için Blazor uygulama desenleri dahil detaylı kılavuzu görün.

Büyük PDF Dosyalarını Yayınlamak İçin Nasıl İşlersiniz?

Birkaç megabayt boyutunda olabilecek belgeler için yayınlama, bellek tepe kullanımını azaltır ve baytları daha hızlı müşteriye iletmeye başlar. Ham bayt dizisi ile File() yerine FileStreamResult kullanın:

public async Task<IActionResult> StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CreatePdfFormsFromHtml = false;

    PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(
        "<h1>Large Document</h1><p>Full content here...</p>");

    pdf.CompressImages(80);

    var stream = new MemoryStream(pdf.BinaryData);

    Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString());
    Response.Headers.Append("Accept-Ranges",  "bytes");

    return new FileStreamResult(stream, "application/pdf");
}
public async Task<IActionResult> StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CreatePdfFormsFromHtml = false;

    PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(
        "<h1>Large Document</h1><p>Full content here...</p>");

    pdf.CompressImages(80);

    var stream = new MemoryStream(pdf.BinaryData);

    Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString());
    Response.Headers.Append("Accept-Ranges",  "bytes");

    return new FileStreamResult(stream, "application/pdf");
}
Imports System.IO
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc

Public Class YourController
    Inherits Controller

    Public Async Function StreamLargePdf() As Task(Of IActionResult)
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.CreatePdfFormsFromHtml = False

        Dim pdf As PdfDocument = Await renderer.RenderHtmlAsPdfAsync("<h1>Large Document</h1><p>Full content here...</p>")

        pdf.CompressImages(80)

        Dim stream As New MemoryStream(pdf.BinaryData)

        Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString())
        Response.Headers.Append("Accept-Ranges", "bytes")

        Return New FileStreamResult(stream, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

CompressImages(80), JPEG kalitesini %80'e düşürür, bu da görüntü ağırlıklı belgelerde dosya boyutunu önemli ölçüde keserken gözle görülür kalite kaybını en aza indirir. Accept-Ranges: bytes ayarı tarayıcıya bayt aralığı parçaları talep edebileceğini bildirir, böylece büyük PDF'ler içinde, tüm dosyayı ilk başta indirmeden daha hızlı arama yapılmasını sağlar.

ISO'nın PDF/A spesifikasyonu, arşiv niteliğinde PDF gerekliliklerini tanımlar. Uygulamanız uzun vadeli arşiv belgeleri üretmek zorundaysa, IronPDF'in PDF/A uyum modu çıktının bu standartları karşıladığından emin olur, bu da özellikle düzenleyici veya yasal iş akışları için geçerlidir.

Eski ASP.NET Web Forms projeleri için desen hafifçe farklıdır çünkü doğrudan HTTP yanıtına yazarsın:

protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    using var renderer = new ChromePdfRenderer();
    PdfDocument pdf    = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    using var renderer = new ChromePdfRenderer();
    PdfDocument pdf    = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
Protected Sub btnGeneratePdf_Click(sender As Object, e As EventArgs)
    Using renderer As New ChromePdfRenderer()
        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>")
        Response.ContentType = "application/pdf"
        Response.BinaryWrite(pdf.BinaryData)
        Response.End()
    End Using
End Sub
$vbLabelText   $csharpLabel

Birçok PDF'yi aynı anda oluşturan iş yükleri için, yüksek through-put durumlarında bellek yükünü azaltan ayarlar için IronPDF asenkron API kılavuzu ve performans optimizasyon referans inceleyin.

Bir Tarayıcı Tabanlı Görüntüleyici Kullanıcılarınıza Ne Özellikler Sunar?

Bir tarayıcı bir PDF'yi satır içi görüntülediğinde, otomatik olarak tam özellikli bir görüntüleyici sunar. Kullanıcılarınız içerik kopyalaması için metin seçimi, belirli kelime veya numaraları bulmak için yerleşik bir arama çubuğu, yazdırma kontrolü ve bir tıklama ile indirme gibi özelliklere -- ön uç kodunuza eklemeden -- sahiptir.

Temel görüntüleme dışında, IronPDF kullanıcıların görüntüleyicide ne göreceklerini etkileyen geniş bir belge özelliği yelpazesi sunar:

Aşağıdaki tablo, kütüphanede mevcut birincil dönüştürme yöntemlerini ve her birinin kullanılacağı zamanı özetlemektedir:

IronPDF dönüşüm metodları ve önerilen kullanım durumları
Yöntem Giriş En İyi İçin
RenderHtmlAsPdf HTML stringi Şablonlu belgeler, faturalar, raporlar
RenderUrlAsPdf URL Web sayfası arşivleme, canlı içerik anlık görüntüleri
RenderHtmlAsPdf + Razor Render edilmiş görünüm HTML Mevcut MVC şablonlarının PDF olarak yeniden kullanımı
RenderHtmlFileAsPdf Yerel HTML dosyası Diskte saklanan statik şablonlar

Konteynerleştirilmiş dağıtımlar için, IronPDF Ayrıca, PDF oluşturmayı özel bir mikro hizmet olarak çalıştırabilmek için uzatan motor desteği sağlar. Kaynak kısıtlı ortamlara göre ayarlanan ayarlarla bellek optimizasyon kılavuzu inceleyin.

Yeteneklerin tam bir genel bakışı için, IronPDF özellik sayfasını ziyaret edin.

IronPDF Ne Tür Biçimlendirme ve Düzenleme Seçenekleri Destekler?

IronPDF, temel renderlemenin ötesine geçer. Aşağıdaki seçenekleri kullanarak her belgeye yapı ve markalama ekleyebilirsiniz.

Sayfa düzeni kontrolleri, özel kağıt boyutları, yön ayarları ve kenar boşlukları yapılandırmasını içerir. Tipografi desteği, CSS @font-face beyanları üzerinden tam web fontlarının render edilmesini kapsar, belgelerin marka yazı tiplerinize tam olarak uymasını sağlar. Ayrıca, PDF sayfalarına görselleri gömüp yeniden boyutlandırarak görsel sadakat üzerinde tam kontrole sahip olabilirsiniz.

Belge manipülasyonu için, IronPDF mevcut PDF'leri birleştirme veya ayırma, bireysel sayfaları ekleme veya kaldırma ve programatik olarak metin ve görselleri çıkarma olanağı tanır. JavaScript yakalama öncesi yürütme, Chart.js veya D3.js gibi istemci tarafı işleme kütüphanelerine dayanan raporlar oluştururken dinamik grafikler ve veri görselleştirmeleri için destek sunar.

Bu yetenekler, uygulamanızdan doğrudan cilalı, baskı hazır belgeler üretmenize olanak tanır, ayrı bir belge işleme katmanına gerek kalmadan.

Kullanıcıdan yüklenmiş PDF'leri kabul etmeye ve oluşturulanlarla yan yana göstermeye ihtiyacınız varsa, IronPDF, yeni olanlar kadar kolay bir şekilde mevcut PDF ikililerini okur. PdfDocument.FromFile() ile bir dosyayı yükleyin ve BinaryData'ını aynı File() yardımıyla döndürün.

Mevcut belgelerin düzenlenmesi, not eklenmesi ve değiştirilmesi konusunda detaylı bir kılavuz için C# PDF düzenleme eğitimini inceleyin.

IronPDF Alternatif Yaklaşımlarla Nasıl Karşılaştırılır?

Bir IronPDF sunucu tarafı yaklaşımına en sık alternatif olarak iki seçenek öne çıkıyor; istemci tarafı bir PDF görüntüleyici kütüphanesini gömme (örneğin, Mozilla'nın açık kaynak görüntüleyicisi PDF.js) ve kullanıcıları ayrı bir belge yönetim sistemine yönlendirme.

PDF.js gibi istemci tarafı görüntüleyiciler, basit görüntüleme durumları için iyi çalışır, ancak görüntüleyici JavaScript paketi hizmeti, harici PDF'ler için CORS'u yönetme ve tarayıcı uyumluluğunu kendiniz yönetme gerektirir. IronPDF ile sunucu tarafı oluşturma, PDF boru hattını tamamen .NET yığında tutarken, güvenlik politikalarını basitleştirir ve kökenler arası karmaşıklıktan kaçınır.

Özel bir belge yönetim sistemi, çoğu web uygulamasının ihtiyaç duymadığı operasyonel yük ekler. ASP.NET Core zaten çalıştıran ekipler için, doğrudan kontrolcüden PDF'leri oluşturmak ve akıtmak en az direnç yoludur.

Sonraki Adımlarınız Neler?

Bir ASP.NET Core web uygulamasında PDF görüntülemek yalnızca birkaç satır kod alır. PDF'yi ChromePdfRenderer ile oluşturun, Content-Disposition: inline ayarlayın, ve bir FileResult döndürün -- tarayıcının yerleşik görüntüleyicisi geri kalan her şeyi halleder.

Üretim dağıtımları için kurulumunuzu hazırlamak amacıyla şu adımları değerlendirin:

Projenize PDF görüntüleme eklemeye hazır mısınız? Ücretsiz bir deneme ile başlayın ve yukarıdaki örnekleri birkaç dakika içinde çalıştırın. Dağıtıma hazır olduğunuzda, ekibinizin boyutuna ve kullanımınıza uygun lisanslama seçeneklerini gözden geçirin. İlişkili dönüştürmeleri keşfetmek için IronPDF'nin DOCX'ten PDF'e, görüntüden PDF'e ve diğer formatlarla nasıl başa çıktığını nasıl yapılır kılavuzu kütüphanesinde gezinin.

Şimdi IronPDF ile başlayın.
green arrow pointer

Sıkça Sorulan Sorular

ASP.NET web uygulamasında bir PDF görüntüleyici nasıl oluşturabilirim?

ASP.NET web uygulamasında IronPDF kullanarak bir PDF görüntüleyici oluşturabilirsiniz. Uygulamanız içinde PDF belgelerini doğrudan görüntülemeye olanak tanır ve Adobe Acrobat Reader gibi harici araçlara gerek kalmadan kesintisiz bir görüntüleme deneyimi sunar.

ASP.NET'te PDF görüntüleme için IronPDF kullanmanın avantajları nelerdir?

IronPDF, ASP.NET uygulamalarında pürüzsüz ve entegre bir PDF görüntüleme deneyimi sağlar. Belgeleri satır içi olarak görüntülemenizi, çeşitli dosya türlerini desteklemenizi ve üçüncü taraf PDF görüntüleyicilere gerek duymadan kullanıcı deneyimini iyileştirmenizi sağlar.

Interactive PDF formlarını ASP.NET web uygulamamda görüntüleyebilir miyim?

Evet, IronPDF ile ASP.NET web uygulamanızda etkileşimli PDF formları görüntüleyebilirsiniz. Form alanlarının ve etkileşimli unsurların render edilmesini destekleyerek kullanıcıların belgelerle doğrudan tarayıcıda etkileşimde bulunmasını sağlar.

ASP.NET'te IronPDF'i kullanarak faturalar ve raporlar görüntülenebilir mi?

Kesinlikle, IronPDF, ASP.NET uygulamalarında faturalar, raporlar ve diğer belge türlerini görüntülemek için son derece uygundur. Belgelerinizin web uygulaması içinde düzgün ve verimli bir şekilde görüntülenmesini sağlar.

IronPDF'i kullanarak ASP.NET uygulamalarında PDF'leri görüntülemek için Adobe Acrobat Reader'a ihtiyacım var mı?

Hayır, IronPDF kullanarak ASP.NET uygulamalarında PDF'leri görüntülemek için Adobe Acrobat Reader'a ihtiyacınız yoktur. Üçüncü taraf bağımlılıklar olmadan PDF'leri doğrudan tarayıcıda render etmenize ve görüntülemenize olanak tanır.

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