Başsız C#'ta Razor Kullanarak CSHTML'yi PDF'ye Nasıl Dönüştürürüm | 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.Templating.Core kullanarak cshtml dosyalarını HTML'e dönüştürüp ardından IronPDF'nin RenderHtmlAsPdf metodunu kullanarak bir GUI veya tarayıcı penceresi gerektirmeden PDF dökümanları oluşturmak için C# ile Razor Görünümlerini PDF'ye dönüştürün.

Başsız işleme, web içeriğini grafik kullanıcı arayüzü olmadan işler. IronPdf.Extensions.Razor faydalı olsa da, başsız işleme yeteneklerinden yoksundur. Bu kılavuz bu boşluğu doldurmayı amaçlıyor.

cshtml'yi HTML'ye dönüştürmek için Razor.Templating.Core kullanacağız, ardından PDF üretmek için IronPDF'yi kullanacağız.

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

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

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçasını kopyalayıp çalıştırın.

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

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

    arrow pointer

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

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

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

Neden IronPdf.Extensions.Razor Yerine Razor.Templating.Core'a İhtiyacım Var?

Razor.Templating.Core, gerçek başsız işleme sağlar—Razor Görünümlerini HTML'ye bir web bağlamı veya tarayıcı penceresi olmadan dönüştürme. Bu, arka plan hizmetleri, komut satırı uygulamaları veya arayüzsüz ortamlar için uygundur. IronPdf.Extensions.Razor çalışmak için bir web bağlamı gerektirir.

Hangi Proje Türü Başsız PDF Üretimi İçin 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ı üretim için IronPDF'yi Azure'a dağıtma konusuna bakın.

Gerekli NuGet Paketlerini Nasıl Kurarım?

NuGet Paket Yöneticisi kullanarak paketleri yükleyin. IronPDF ve Razor.Templating.Core'a ihtiyaçı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" />
' Install via Package Manager Console
' Install-Package IronPdf
' Install-Package Razor.Templating.Core

' Or add to your .vbproj file
' <PackageReference Include="IronPdf" Version="2024.x.x" />
' <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
$vbLabelText   $csharpLabel

PDF Üretimi İç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' ardından 'Görünüm Ekle'yi seçin.
  • 'Data.cshtml' adında boş bir Razor Görünümü oluşturun.

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

Razor Görünümüme Ne Tür HTML İçeriği Eklemeliyim?

PDF olarak ö render etmek istediğiniz HTML'yi 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 oluşturulmasını sağlamak için CSS ve yazdırma stillerini kullanın. IronPDF, karmaşık belge düzenleri için modern CSS3 özelliklerini destekler.

PDF Veri Gösterimi İçin Neden Tablolar Kullanılmalı?

Tablolar, yazılı belgelerde iyi çevrilen yapılandırılmış, düzenli bilgi sağlar. Farklı platformlar arasında tutarlı biçimlendirmeyi korurlar ve PDF formatında okunabilirdirler. IronPDF'nin işleme motoru, tablo düzenlerini iyi işler, kenarlıklar, aralıklar ve hizalamayı korur. Gelişmiş biçimlendirme için düzeni optimize etmek amacıyla özel kenar boşluklarını keşfedin.

PDF Çıkışı İçin Yaygın Biçimlendirme Düşünceleri Nelerdir?

PDF çıktısı için yazdırma odaklı CSS medya sorguları, göreli birimler yerine sabit piksel değerleri ve tutarlı render için yerleştirilmiş yazı tipleri kullanın. IronPDF, marka tutarlılığı için web yazı tiplerini ve simge yazı tiplerini destekler. Çok sayfalı belgeler ve profesyonel görünüm için uygun kenar boşlukları için sayfa kesmelerini düşünün.

Başsız PDF İşleme İçin Program.cs'yi Nasıl Yapılandırırım?

'Program.cs'ye bu kodu ekleyin. Razor Görünümlerini HTML'e dönüştürmek için Razor.Templating.Core'tan RenderAsync kullanır, sonra ChromePdfRenderer örneğini yaratır ve HTML'i RenderHtmlAsPdf'a geçirir. Özel metinler, başlıklar, altbilgiler, kenar boşlukları ve sayfa numaraları için RenderingOptions kullanın.

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

app.MapGet("/PrintPdf", Async Function()
    ' 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 İşleme Seçenekleri Nelerdir?

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

PDF Üretimi Sırasında Hataları Nasıl Ele Alırım?

Güçlü PDF üretimi için hata işleme uygulayın:

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

Public Class PdfGenerator
    Public Shared Async Function GeneratePdfAsync() As Task(Of IResult)
        Try
            Dim html = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")
            Dim renderer = 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
    End Function
End Class
$vbLabelText   $csharpLabel

Detaylı Günlükleme Ne Zaman Etkinleştirilmelidir?

Geliştirme ve sorun giderme sırasında detaylı günlükleme etkinleştirin. IronPDF'nin günlüğü, HTML ayrıştırma, varlık yükleme veya yapılandırma sorunlarını belirlemeye yardımcı olur. Üretim için, uygulamanızın günlük altyapısıyla entegre olmak için özel günlükleme kullanın.

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

Views > Shared > '_Layout.cshtml' adresine gidin. Bağlantı etiketlerinde "~/""./" ile değiştirin çünkü "~/", IronPDF ile iyi çalışmıyor.

Başka Hangi Yol İlgili Sorunları İzlemeliyim?

Tilde (~) yol sorununun ötesinde, resim kaynaklarının mutlak yollar veya doğru göreli referanslar kullandığından emin olun. Dış kaynaklar için varlıkların doğru şekilde yüklenmesini sağlamak için temel URL'ler kullanın. Azure Blob Storage resimleri için Azure Blob Storage'dan resimleri yerleştirme konusuna bakın.

Durağan Varlıklar PDF Üretimini Nasıl Etkiler?

Durağan varlıklar (CSS, JavaScript, resimler), PDF üretim performansını ve kalitesini etkiler. Varlıkların işleme sırasında erişilebilir olduğundan emin olun, optimize edilmiş resimler kullanın ve daha hızlı işleme için kritik CSS'yi içeri gömme düşünün. JavaScript yoğun içerik için işlem gecikmeleri ve zaman aşımı hakkında bilgi edinin.

Başsız PDF Üretimimi Nasıl Test Ederim?

Bir PDF belgesi oluşturmak için projeyi çalıştırın.

Visual Studio showing running ASP.NET Core MVC app with Program.cs open and successful debug output

Çıktı PDF

Son PDF'im Nasıl Olmalı?

PDF'iniz tüm Razor Görünüm biçimlendirmesini—tablo yapıları, yazı tipleri, renkler ve düzen—korumalıdır. Temiz kenar boşlukları ve profesyonel bir görünümle uygun şekilde boyutlandırılmış olmalıdır. Çıktı kalitesini doğrulamak için IronPDF'nin rasterizasyon özelliklerini kullanarak sayfaları görüntü olarak önizleyin.

Yaygın PDF İşleme Sorunlarını Nasıl Çözebilirim?

Yaygın sorunlar arasında eksik stiller, kırık düzenler veya eksik içerik bulunur. Detaylı günlükleme etkinleştirin, varlık yollarını doğrulayın ve HTML'nin doğru şekilde doğrulandığından emin olun. Karmaşık düzenler için dönüşümden önce HTML'yi önizlemek için Chrome hata ayıklama araçlarını kullanın. Belirli işleme sorunları için içerik yüklenmesini sağlamak amacıyla WaitFor gecikmeleri kullanın.

Tam Çalışma Örneğini Nereden İndirebilirim?

Tam kodu ziplenmiş bir Visual Studio ASP.NET Core Web Uygulaması (Model-View-Controller) projesi olarak indirin.

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

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

Visual Studio 2019 veya daha yeni bir sürüme ve en az .NET 6.0 SDK'ye ihtiyaçınız var. Proje, NuGet paketini geri yüklemek 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 ilave gereksinimler için Windows kurulum kılavuzunu inceleyin.

Örneği Kendi Kullanım Durumuma Nasıl Uyarlayabilirim?

Örnek, spesifik 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 sistemleri ile entegre edin. Gelişmiş senaryolar için, iyileştirilmiş performans için asenkron PDF oluşturmayı veya dosya boyutlarını küçültmek için PDF sıkıştırma uygulayın. Belge özgünlüğü için dijital imzalar ekleyin veya hassas belgeler için şifre koruması uygulayın.

Sıkça Sorulan Sorular

C# içinde GUI olmadan Razor Görünümleri'ni PDF'ye nasıl dönüştürebilirim?

cshtml dosyalarını HTML'ye dönüştürmek için Razor.Templating.Core kullanın, ardından IronPDF'nin RenderHtmlAsPdf yöntemini kullanarak PDF'leri GUI'siz oluşturun. Bu iki adımlı süreç, Razor Görünümlerini grafik kullanıcı arayüzü veya tarayıcı penceresi gerektirmeden PDF belgelerine dönüştürmenizi sağlar.

Bir Razor görünümünü en hızlı şekilde GUI'siz nasıl PDF olarak işleyebilirim?

En hızlı yaklaşım iki satırlık kod kullanmaktır: Önce Razor görünümünüzü RazorTemplateEngine.RenderAsync ile HTML'ye dönüştürün, ardından IronPDF'nin ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs() yöntemini kullanarak PDF dosyasını oluşturup kaydedin.

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

Razor.Templating.Core, gerçek GUI'siz işleme yetenekleri sunarak, web bağlamı veya tarayıcı penceresi olmadan Razor Görünümleri'ni HTML'ye dönüştürmenizi sağlar. IronPdf.Extensions.Razor faydalıdır, ancak işlev görmek için bir web bağlamına ihtiyaç duyar ve bu da Razor.Templating.Core'ü arka plan servisleri ve konsol uygulamaları için daha uygun hale getirir.

GUI'siz PDF oluşturma için hangi tür ASP.NET Core projesine ihtiyaçım var?

IronPDF ile arka plan servislerinde, Azure İşlevlerinde veya konsol uygulamalarında iyi çalışan esnek dağıtım seçeneklerine sahip gerekli Razor Görünüm altyapısını sağlayan ASP.NET Core Web Uygulaması (Model-Görünüm-Denetleyici) projesi kullanın.

Razor'dan PDF'ye dönüştürme için gereken paketleri nasıl kurarım?

'Install-Package Razor.Templating.Core' komutunu kullanarak NuGet Paket Yöneticisi aracılığıyla Razor.Templating.Core'u kurun. HTML'den PDF'ye dönüştürme adımını yönetmek için projenizde IronPDF'nin de kurulu olması gerekmektedir.

Bu GUI'siz PDF oluşturma yaklaşımını bulut ortamlarında kullanabilir miyim?

Evet, IronPDF'nin GUI'siz Razor'dan PDF'ye dönüştürme işlemi, Azure İşlevleri, AWS Lambda ve konteynerize uygulamalar da dahil olmak üzere bulut ortamlarında mükemmel çalışır ve ölçeklenebilir belge oluşturma hizmetleri için idealdir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.