Razor Kullanarak C#'ta CSHTML'yi PDF'e Dönüştürme | IronPDF

How to Convert Razor Views to PDFs Headlessly in C

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

Razor Görünümlerini PDF'lere dönüştürmek için C#'da Razor.Templating.Core kullanarak cshtml dosyalarını HTML'ye dönüştürün, ardından GUI veya tarayıcı penceresi gerektirmeden PDF belgelerini oluşturmak için IronPDF'in RenderHtmlAsPdf metodunu kullanın.

Başsız render işlemleri grafik kullanıcı arayüzü olmadan web içeriklerini işler. IronPdf.Extensions.Razor faydalı olsa da, başsız işlem yapma yetenekleri yoktur. Bu kılavuz bu boşluğu doldurur.

Razor Görünümlerini HTML'ye dönüştürmek için Razor.Templating.Core'yı kullanacağız, ardından PDF'leri oluşturmak için IronPDF kullanacağız.

Hızlı Başlangıç: Razor Görünümlerini Saniyeler İçinde PDF'ye Dönüştürme

IronPDF'nin başsız dönüştürmesi ile Razor Görünümlerini PDF'lere dönüştürün. Razor Görünümlerinden HTML'yi PDF'lere aktarmak için IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdf kullanın. Bu yaklaşım ASP.NET Core ortamlarında sorunsuz çalışır.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    var html = await RazorTemplateEngine.RenderAsync("Views/Template.cshtml", model); 
    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs("output.pdf");
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın

    arrow pointer

ASP.NET Core Web Uygulamalarında Razor Görünümlerini HTML'ye dönüştürmek için Razor.Templating.Core kurun.

# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
SHELL

ASP.NET Core Projemi Razor'dan PDF'ye Dönüştürmek İçin Nasıl Yapılandırırım?

Görünümleri PDF'lere dönüştürmek için bir ASP.NET Core Web Uygulaması (Model-View-Controller) projesine ihtiyacınız var. Proje yapılandırılması, Visual Studio'da bir proje oluşturmayı, NuGet paketlerini yüklemeyi ve proje yapısını yapılandırmayı içerir. Benzer teknikler için, MVC Core'da CSHTML'yi PDF'ye dönüştürme veya Razor Pages kullanarak CSHTML'yi PDF'ye dönüştürme konusuna bakın.

Neden IronPdf.Extensions.Razor yerine Razor.Templating.Core'a ihtiyacım var?

Razor.Templating.Core, Razor Görünümlerini web bağlamı veya tarayıcı penceresi olmadan HTML'ye dönüştüren gerçek bir başsız işleme sağlar. Bu, arka plan hizmetleri, konsol uygulamaları veya UI'siz ortamlar için uygundur. IronPdf.Extensions.Razor işlev görmek için bir web bağlamı gerektirir.

Başsız PDF Oluşturma İçin Hangi Proje Türü En İyi Çalışır?

ASP.NET Core Web Uygulaması (Model-View-Controller) projeleri, gerekli Razor Görünüm altyapısını esnek dağıtım seçenekleriyle sağlar. Bu yaklaşımı arka plan hizmetlerinde, Azure İşlevlerinde veya konsol uygulamalarında kullanın. Bulut tabanlı oluşturma için IronPDF'yi Azure'a dağıtma konusuna bakın.

Gerekli NuGet Paketlerini Nasıl Yüklerim?

NuGet Paket Yöneticisi kullanarak paketleri yükleyin. IronPdf ve Razor.Templating.Core ihtiyacınız var:

// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core

// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core

// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
SHELL

PDF Oluşturma İçin Bir Razor Görünümünü Nasıl Oluşturur ve Yapılandırırım?

  • "Home" klasörüne sağ tıklayın. "Ekle"yi seçin ardından "View Ekle".
  • "Data.cshtml" adında boş bir Razor Görünümü oluşturun.

 related to PDF Oluşturma İçin Bir Razor Görünümünü Nasıl Oluşturur ve Yapılandırırım?

Razor Görünümüme Hangi HTML İçeriğini Eklemeliyim?

PDF olarak render edeceğiniz HTML'i ekleyin:

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
HTML

Karmaşık düzenler için, mükemmel PDF render'i sağlamak adına CSS ve baskı stillerini kullanın. IronPDF, gelişmiş belge düzenleri için modern CSS3 özelliklerini destekler.

PDF Veri Görüntüleme İçin Neden Tablolar Kullanılmalı?

Tablolar, basılı belgelere iyi çevirilen, yapılandırılmış ve organize bilgi sağlar. Farklı platformlar arasında tutarlı biçimlendirme sağlarlar ve PDF formatında okunabilirler. IronPDF'nin render motoru, kenarlıkları, boşlukları ve hizalamaları korumada tablo düzenlerini iyi işler. Gelişmiş biçimlendirme için, düzeni optimize etmek adına özel kenar boşluklarını araştırın.

PDF Çıktısı İçin Genel Biçimlendirme Düşünceleri Nelerdir?

PDF çıktısı için, baskı özeline özgü CSS medya sorgularını, göreli birimler yerine sabit piksel değerlerini ve tutarlı render için gömülü yazı tiplerini kullanın. IronPDF, web yazı tipleri ve simge yazı tipleri ile marka tutarlılığını destekler. Çok sayfalı belgeler için sayfa sonlarını ve profesyonel görünüm için uygun kenar boşluklarını düşünün.

Başsız PDF İşleme için Program.cs nasıl yapılandırırım?

Program.cs içerisine bu kodu ekleyin. Razor Görünümlerini HTML'ye dönüştürmek için Razor.Templating.Core dan RenderAsync kullanır, ardından ChromePdfRenderer oluşturur ve HTML'yi RenderHtmlAsPdf 'ya geçirir. Özel metin, başlıklar, altbilgiler, kenar boşlukları ve sayfa numaraları için RenderingOptions kullanın.

:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-headlessly-5.cs
app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    
    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    
    // Configure rendering options for professional output
    renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;
   
    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
Imports IronPdf
Imports Microsoft.AspNetCore.Http

app.MapGet("/PrintPdf", Async Function() As Task(Of IResult)
    ' Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
    
    ' Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All

    ' Render the Razor view to an HTML string
    Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")

    ' Create a new instance of ChromePdfRenderer 
    Dim renderer As New ChromePdfRenderer()
    
    ' Configure rendering options for professional output
    renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4
    renderer.RenderingOptions.MarginTop = 25
    renderer.RenderingOptions.MarginBottom = 25
    renderer.RenderingOptions.MarginLeft = 20
    renderer.RenderingOptions.MarginRight = 20
   
    ' Render the HTML string as a PDF document
    Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot")

    ' Return the PDF file as a response
    Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
End Function)
$vbLabelText   $csharpLabel

PDF'lerime Uygulayabileceğim Hangi Render Seçenekleri Mevcut?

IronPDF geniş kapsamlı render seçenekleri sunar. Başlıklar ve altbilgiler ekleyin, özel kağıt boyutları ayarlayın, sayfa yönünü kontrol edin ve filigranlar ekleyin. ChromePdfRenderer, PDF oluşturmayı özelleştirmek için 50'den fazla özellik sunar.

PDF Oluşturma Sırasında Hataları Nasıl Yönetirim?

Güçlü PDF oluşturma için hata yönetimini uygulayın:

:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-headlessly-6.cs
try
{
    var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
}
catch (Exception ex)
{
    // Log the error details
    IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}");
    return Results.Problem("Failed to generate PDF", statusCode: 500);
}
Imports IronPdf
Imports System.Threading.Tasks

Try
    Dim html = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")
    Dim renderer As New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot")
    Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
Catch ex As Exception
    ' Log the error details
    IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}")
    Return Results.Problem("Failed to generate PDF", statusCode:=500)
End Try
$vbLabelText   $csharpLabel

Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

Detaylı günlüklemeyi geliştirme ve sorun giderme sırasında etkinleştirin. IronPDF'nin günlüğü, render süreci hakkında içgörüler sağlar, HTML analizini, varlık yüklemeyi veya yapılandırma sorunlarını tanımlamaya yardımcı olur. Üretim için, özel günlükleme kullanarak uygulamanızın günlük yapısına entegre edin.

Icon Quote related to Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

Bu türden favori kütüphanem IronPDF'dir. PDF dosyalarının hızlı ve verimli bir şekilde işlenmesine olanak tanır. Ayrıca, PDF/A formatına dışa aktarma ve dijital imzalama gibi birçok değerli özelliğe sahiptir.

Milan Jovanovic related to Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

Milan Jovanovic

Microsoft MVP

Vaka çalışmasını görüntüle
Icon Quote related to Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

IronOCR, manuel işleme maliyetinden yıllık 40.000 USD tasarruf etmemizi sağlıyor, üretkenliği artırıyor ve yüksek etkili görevler için kaynakları serbest bırakıyor. Kesinlikle tavsiye ederim.

Brent Matzelle related to Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

Brent Matzelle

Teknoloji Müdürü, OPYN

Vaka çalışmasını görüntüle
Icon Quote related to Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.

David Jones related to Detaylı Günlüklemeyi Ne Zaman Aktifleştirmeliyim?

David Jones

Baş Yazılım Mühendisi, Agorus Build

Vaka çalışmasını görüntüle

Varlık Bağlantı Yollarını Neden Değiştirmeliyim?

Görünümler > Paylaşılan > _Layout.cshtml 'ya gidin. Bağlantı etiketlerinde, "~/" IronPDF ile iyi çalışmadığı için "~/"'yı "./" olarak değiştirin.

Başka Hangi Yol İlgili Sorunlarına Dikkat Etmeliyim?

Tilde (~) yol sorununun ötesinde, görüntü kaynaklarının mutlak yollar veya doğru göreli referanslar kullandığından emin olun. Dış kaynaklar için, varlıkların doğru bir şekilde yüklenmesini sağlamak için temel URL'ler kullanın. Azure Blob Storage görüntüleri için, Azure Blob Storage'dan görüntüleri gömme konusunda bilgi alın.

Statik Varlıklar PDF Oluşturmayı Nasıl Etkiler?

Statik varlıklar (CSS, JavaScript, resimler), PDF oluşturma performansı ve kalitesini etkiler. Render sırasında varlıkların erişilebilir olduğunu sağlayın, optimize edilmiş görüntüler kullanın ve daha hızlı render için kritik CSS'i satır içi eklemeyi düşünün. JavaScript ağırlıklı içeriklerde render gecikmeleri ve zaman aşımları hakkında bilgi edinin.

Başsız PDF Oluşturmayı Nasıl Test Ederim?

Projeyi çalıştırarak bir PDF belgesi oluşturun.

Program.cs açık ve başarılı hata ayıklama çıktısıyla çalışan ASP.NET Core MVC uygulamasını gösteren Visual Studio

Çıktı PDF

Son PDF'im Neye Benzemeli?

PDF'niz tüm Razor Görünüm biçimlendirmelerini—tablo yapıları, yazı tipleri, renkler ve düzen—korumalıdır. Uygun bir boyutlandırma, temiz kenar boşlukları ve profesyonel görünüm sağlamalıdır. Çıktı kalitesini doğrulamak için IronPDF'nin rasterizasyon özelliklerini kullanarak sayfaları görüntü olarak önizleyin.

Yaygın PDF Render Sorunlarını Nasıl Çözerim?

Yaygın sorunlar arasında eksik stiller, bozuk düzenler veya eksik içerik bulunur. Detaylı günlüklemeyi etkinleştirin, varlık yollarını doğrulayın ve HTML'in düzgün bir şekilde doğrulandığından emin olun. Karmaşık düzenler için, Chrome hata ayıklama araçlarını kullanarak dönüştürmeden önce HTML'yi önizleyin. Belirli render sorunları için, içerik yüklemesi öncesinde WaitFor gecikmelerini kullanın.

Tamamlanmış Çalışan Bir Örneği Nereden İndirebilirim?

Tamamını zipli Visual Studio ASP.NET Core Web Uygulaması (Model-View-Controller) projesi olarak indir.

Projeyi indirmek için buraya tıklayın.

Örnek Projeyi Çalıştırmak İçin Gereksinimler Nelerdir?

Visual Studio 2019 veya sonrası ile .NET 6.0 SDK veya üstüne ihtiyacınız var. Proje, NuGet paketi geri yüklemesi için internet bağlantısı gerektirir. Çalıştırmadan önce Program.cs içinde IronPDF lisans anahtarınızı güncelleyin. Dağıtım için, ek gereksinimler için Windows kurulum kılavuzunu inceleyin.

Örneği Kendi Kullanım Durumuma Nasıl Özelleştiririm?

Örnek, belirli ihtiyaçlarınız için bir temel sağlar. Dinamik veri modelleri ekleyin, sıkça oluşturulan PDF'ler için önbellekleme uygulayın veya mevcut kimlik doğrulama ile entegrasyon yapın. Gelişmiş senaryolar için, performansı artırmak adına eşzamanlı olmayan PDF oluşturmayı keşfedin veya dosya boyutlarını azaltmak için PDF sıkıştırma uygulayın. Belge doğruluğu için dijital imzalar ekleyin veya hassas belgeler için şifre koruması uygulayın.

Sıkça Sorulan Sorular

Razor Görünümlerini C#'ta GUI olmadan nasıl PDF'e dönüştürebilirim?

Razor Görünümlerini HTML'e dönüştürmek için Razor.Templating.Core kullanın, ardından IronPDF'in RenderHtmlAsPdf yöntemini kullanarak PDF'ler üretin. Bu iki aşamalı süreç, Razor Görünümlerini PDF belgelerine dönüştürmeye olanak tanır, bir grafik kullanıcı arayüzü veya tarayıcı penceresi gerektirmez.

Razor görünümünü GUI olmadan PDF'e dönüştürmenin en hızlı yolu nedir?

En hızlı yaklaşım iki satır kod kullanmaktır: önce Razor görünümünüzü RazorTemplateEngine.RenderAsync ile HTML'e dönüştürün, ardından IronPDF'in ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs() metodunu kullanarak PDF dosyasını oluşturun ve kaydedin.

Neden IronPdf.Extensions.Razor yerine Razor.Templating.Core kullanmalıyım?

Razor.Templating.Core, gerçek başsız işleme yetenekleri sağlayarak bir web bağlamı veya tarayıcı penceresi olmadan Razor Görünümlerini HTML'e dönüştürmenizi sağlar. IronPdf.Extensions.Razor faydalı olsa da, çalışması için bir web bağlamı gerektirir, bu da Razor.Templating.Core'ü arka plan hizmetleri ve konsol uygulamaları için daha uygun hale getirir.

Başsız PDF oluşturma için hangi ASP.NET Core projesine ihtiyacım var?

Başsız PDF oluşturma için ASP.NET Core Web Uygulaması (Model-Görünüm-Denetleyici) projesi kullanın, bu gerekli Razor Görünüm altyapısını ve esnek dağıtım seçeneklerini sağlar. IronPDF ile arka plan hizmetleri, Azure İşlevleri veya konsol uygulamaları için iyi çalışır.

Razor'dan PDF'e dönüştürme için gerekli paketleri nasıl yüklerim?

NuGet Paket Yöneticisini kullanarak 'Install-Package Razor.Templating.Core' komutuyla Razor.Templating.Core'u yükleyin. Projenizde HTML'den PDF'e dönüşüm aşamasını gerçekleştirmek için ayrıca IronPDF kurulu olması gereklidir.

Bulut ortamlarında bu başsız PDF oluşturma yaklaşımını kullanabilir miyim?

Evet, IronPDF'in başsız Razor'dan PDF'e dönüştürmesi, Azure İşlevleri, AWS Lambda ve konteynerize edilmiş uygulamalar gibi bulut ortamlarında mükemmel şekilde çalışır, bu da onu ölçeklenebilir belge oluşturma hizmetleri için ideal hale getirir.

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
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,936,792 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.