How to Convert Razor Views to PDFs Headlessly in C
C#'da Razor Görünümlerini PDF'lere dönüştürmek için Razor.Templating.Core kullanarak cshtml dosyalarını HTML'ye dönüştürün, ardından IronPDF'nin RenderHtmlAsPdf yöntemini kullanarak GUI veya tarayıcı penceresi gerektirmeden PDF belgeleri oluşturun.
Başsız render işlemleri grafik kullanıcı arayüzü olmadan web içeriklerini işler. IronPdf.Extensions.Razor kullanışlı olsa da, başlıksız görüntüleme özelliklerinden yoksundur. Bu kılavuz bu boşluğu doldurur.
Razor.Templating.Core kullanarak cshtml'yi HTML'ye dönüştüreceğiz, ardından IronPDF ile PDF'ler oluşturacağı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 Views'dan HTML'yi PDF'lere dönüştürmek için IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdf kullanın. Bu yaklaşım ASP.NET Core ortamlarında sorunsuz çalışır.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
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"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
Asgari İş Akışı (5 adım)
- ASP.NET Core Web Uygulamasında Razor Görünümlerini PDF'ye Dönüştürmek için C# kütüphanesini indirin
- Yeni bir Razor Görünümü oluştur ve dosyayı veri göstermek için düzenle
- Razor Görünümünden HTML'ye dönüştürmek için
RenderAsyncyöntemini kullanın RenderHtmlAsPdfyöntemini kullanarak HTML'yi PDF'ye dönüştürün- Hızlı başlamak için örnek projeyi indirin
.NET Core Web Uygulamalarında Razor Görünümlerini HTML'ye dönüştürmek için Razor.Templating.Core'yi yükleyin.
# 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
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, web bağlamı veya tarayıcı penceresi olmadan Razor Görünümlerini HTML'ye dönüştürerek gerçek başsız görüntüleme sağlar. Bu, arka plan hizmetleri, konsol uygulamaları veya UI'siz ortamlar için uygundur. IronPdf.Extensions.Razor çalışabilmesi 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'ye 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" />
' 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" />
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.
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>
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.
Headless PDF Oluşturma için Program.cs'yi nasıl yapılandırırım?
Program.cs'ye bu kodu ekleyin. Razor Görünümlerini HTML'ye dönüştürmek için RenderAsync'yi Razor.Templating.Core'den kullanır, ardından ChromePdfRenderer'yi örneklendirir ve HTML'yi RenderHtmlAsPdf'ye aktarır. Özel metinler, üstbilgiler, 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)
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:
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
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.
Varlık Bağlantı Yollarını Neden Değiştirmeliyim?
Görünümler > Paylaşılan > _Layout.cshtml'e gidin. Bağlantı etiketlerinde, "~/" ifadesini "./" olarak değiştirin, çünkü "~/" IronPDF ile uyumlu çalışmamaktadır.
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.
Çı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çindeki 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.

