IRONSOFTWAREHOME
IRONPDF KULLANARAK

ASP.NET Core'da HTML'i PDF'ye Cevirin: C# - IronPDF Kılavuzu

Curtis Chau
Curtis Chau
Updated: 20 Haziran 2026

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:

PM > 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";

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");
    }
}

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");
}

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

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");
}

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

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öntemGirişEn İyi İçin
RenderHtmlAsPdfHTML stringiŞablonlu belgeler, faturalar, raporlar
RenderUrlAsPdfURLWeb sayfası arşivleme, canlı içerik anlık görüntüleri
RenderHtmlAsPdf + RazorRender edilmiş görünüm HTMLMevcut MVC şablonlarının PDF olarak yeniden kullanımı
RenderHtmlFileAsPdfYerel 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:

  • PDF oluşturma sürelerini ve hata oranlarını izlemek için özelleştirilmiş loglama yapılandırın.
  • Chromium başlatma yükünü azaltmak için sıkça istenen PDF'ler için önbellekleme uygulayın
  • Renderi web katmanınızdan ayrı ölçeklendirmek için IronPDF Engine Docker Image kullanın
  • Yanıt boyutlarını yönetilebilir tutmak için PDF sıkıştırma seçeneklerini gözden geçirin

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.

İlk Adım:
arrow pointer
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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez