How to Convert Razor Views to PDFs Headlessly in C
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.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin
PM > Install-Package IronPdf -
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"); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronPDF kullanmaya başlayın ücretsiz deneme ile
Minimal Is Akisi (5 adimda)
- C# kütüphanesini ASP.NET Core Web Uygulamasında Razor Görünümlerini PDF'ye dönüştürmek için indir
- Yeni bir Razor Görünümü oluşturun ve veri görüntülemek için dosyayı düzenleyin
RenderAsyncyöntemini kullanarak Razor Görünümünden HTML'ye dönüştürünRenderHtmlAsPdfyöntemiyle HTML'yi PDF'ye dönüştürün- Hızlı başlamak için örnek projeyi indirin
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
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" />
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.
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>
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)
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
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.
Çı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.

