Razor Sayfalarını ASP.NET Core C# Uygulamasında PDF'ye Dönüştürme
IronPDF, Razor Sayfalarini (.cshtml dosyalari) ASP.NET Core uygulamalarinda RenderRazorToPdf yöntemi kullanarak PDF belgelerine sorunsuz bir sekilde dönüştürur, web içeriklerinden PDF oluşturmayi C# ve HTML rendeleme destegi ile basitlestirir.
Bir Razor Sayfasi, web icerigi oluşturmak icin C# ve HTML'yi birlestiren .cshtml uzantili bir dosyadir. ASP.NET Core'da, Razor Sayfaları web uygulamaları için kodu organize etmek için daha basit bir yol sağlar; bu nedenle, yalnızca okunabilir veya basit veri girişi yapan sayfalar için idealdir.
ASP.NET Core Web Uygulaması, modern web uygulamaları geliştirmek için çapraz platform çerçevesi olan ASP.NET Core kullanılarak oluşturulan bir web uygulamasıdır.
IronPDF, ASP.NET Core Web App projesi içinde Razor Sayfalardan PDF dosyaları oluşturma sürecini basitleştirir. Bu, ASP.NET Core Web Uygulamalarında PDF oluşturmayı basit hale getirir.
Hızlı Başlangıç: Razor Sayfalarını Saniyeler İçinde PDF'ye Dönüştürün
Razor Sayfalarınızı, ASP.NET Core uygulamanızda yüksek kaliteli PDF'lere dönüştürün. RenderRazorToPdf yöntemini kullanarak CSHTML dosyalarini PDF belgelerine dönüştürebilirsiniz, bu da is akisinizi optimize eder ve belge dağıtimini iyilestirir. Bu kılavuz, bunu dakikalar içinde başarmak için gereken basit adımlar konusunda size rehberlik eder.
-
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.
// Install-Package IronPdf.Extensions.Razor var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml"); -
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)
- Razor sayfalarını ASP.NET Core Web Uygulamasında PDF'ye dönüştürmek için C# kütüphanesini indirin
- Veri icin bir model sinifi ekleyin
- Yeni bir Razor Sayfası oluşturun ve verileri göstermek için ".cshtml" dosyasını düzenleyin
- ".cs" dosyasını düzenleyin ve
RenderRazorToPdfyöntemini kullanın - Hızlı başlamak için örnek projeyi indirin
Giriş
Razor Sayfaları, ASP.NET Core uygulamalarında dinamik web içeriği oluşturmada güçlü ve sezgisel bir yol sunar. IronPDF'nin işleme yetenekleriyle birleştiğinde, geliştiriciler web içeriklerinden doğrudan profesyonel PDF belgeleri oluşturabilirler. Bu yaklaşım, karmaşık PDF oluşturma mantığını ortadan kaldırır ve mevcut HTML ve CSS becerilerinizi kullanmanıza olanak tanır.
IronPDF ile Razor Sayfaları arasındaki entegrasyon, raporlar, faturalar, sertifikalar ve dinamik veri sunumu gerektiren diğer belgeleri oluşturmak için özellikle değerlidir. Zaten aşina olduğunuz aynı Razor sözdizimini kullanarak, web görünümleriniz ve PDF çıktılarınız arasında tutarlılığı sağlayabilirsiniz.
Razor'dan PDF'ye Dönüştürme İçin Hangi NuGet Paketlerine İhtiyacım Var?
IronPdf.Extensions.Razor paketi ana IronPdf paketinin bir uzantisidir. Razor Sayfalarini bir ASP.NET Core Web Uygulamasında PDF belgelerine rendelemek icin hem IronPdf.Extensions.Razor hem de IronPdf paketlerine ihtiyaç vardir. Ayrintili kurulum talimatlari icin kurulum genel bakisi kılavuzumuzu ziyaret edin.
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package IronPdf.Extensions.Razor
NuGet ile yükleyin
Install-Package IronPdf.Extensions.Razor
Razor Sayfalarını ASP.NET Core'da PDF'ye Nasıl Dönüştürürüm?
Razor Sayfalarını PDF dosyalarına dönüştürmek için bir ASP.NET Core Web Uygulama projesine ihtiyaçınız olacak. Surec, verileriniz icin bir model oluşturmayi, o verileri göstermek icin bir Razor Sayfasi kurmayi ve sonra IronPDF'nin RenderRazorToPdf yöntemini kullanarak PDF cikisini oluşturmayi icerir.
PDF Oluşturma için Neden Bir Model Sınıfına İhtiyacım Var?
Model sınıfları, Razor Sayfalarınızdaki veri sunumunun belkemiği olarak hizmet eder. Verileri denetleyici mantığınızdan görünüme taşımak için yapılandırılmış bir yol sağlar, tür güvenliğini ve sürdürülebilirliğini sağlar. PDF oluştururken bu modeller daha da önemli hale gelir, çünkü nihai belgenizde görünecek verilerin kesin yapısını tanımlarlar.
- Projede yeni bir klasör oluşturun ve adını "Models" koyun.
- Klasöre standart bir C# sınıfı ekleyin ve adını "Person" koyun. Bu sınıf, bireysel verilerin modeli olarak hizmet verecektir. Aşağıdaki kod parçasını kullanın:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace RazorPageSample.Models
Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
PDF Dönüştürme için Bir Razor Sayfasını Nasıl Ayarlayabilirim?
Pages klasörüne boş bir Razor Sayfası ekleyin ve adını "persons.cshtml" koyun.
- Aşağıda verilen kod örneğini kullanarak yeni oluşturulan "Persons.cshtml" dosyasını düzenleyin.
Aşağıdaki kod bilgiyi tarayıcıda gösterir. Razor sözdiziminin, C# kodunu HTML içinde sorunsuz bir şekilde entegre etmesine nasıl izin verdiğini fark edin, bu da PDF'ye dönüştürülebilecek dinamik içerik oluşturmak için onu mükemmel bir hale getirir.
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
Razor Sayfalarını PDF'ye Render Etme
Bir sonraki adımda, aşağıdaki kod ilk olarak ChromePdfRenderer sınıfını başlatır. Bu Razor Sayfasini PDF belgesine dönüştürmek icin this ifadesini RenderRazorToPdf yöntemine aktarmak yeterlidir.
RenderingOptions içinde mevcut olan özelliklere tam erişiminiz vardır. Bu özellikler, üretilen PDF'ye sayfa numaraları uygulamanıza, özel kenar boşlukları ayarlamanıza ve özel metin ile HTML başlıkları ve altbilgileri eklemenize olanak tanır. Belgeleriniz için düzgün bir kimlik ve aranabilirlik sağlamak amacıyla PDF'leriniz için metadata yapılandırabilirsiniz.
- "Persons.cshtml" dosyasını görmek için açılır listeyi açın, "Persons.cshtml.cs" dosyasını görün.
- "Persons.cshtml.cs" dosyasını aşağıdaki kodla değiştirin.
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
Imports IronPdf.Razor
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports RazorPageSample.Models
Namespace RazorPageSample.Pages
Public Class PersonsModel
Inherits PageModel
<BindProperty(SupportsGet := True)>
Public Property Persons() As List(Of Person)
' Handle GET request to load initial data
Public Sub OnGet()
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
End Sub
' Handle POST request to convert Razor page to PDF
Public Function OnPost() As IActionResult
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
Dim renderer As New ChromePdfRenderer()
' Render Razor Page to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
' Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")
' Optionally view the output PDF in browser (uncomment below line if needed)
' return File(pdf.BinaryData, "application/pdf");
End Function
End Class
End Namespace
RenderRazorToPdf yöntemi, ek işleme ve duzenleme yapilabilecek bir PdfDocument nesnesi dondurur. PDF'yi PDFA veya PDFUA olarak cikartabilir, rendelemis PDF belgesine dijital imza ekleyebilir veya PDF belgelerini birlestirip ayirabilirsiniz. Yöntem ayrıca sayfaları döndürmenizi, açıklamalar veya yer imleri eklemenizi ve PDF'nize özel filigranlar damgalamanıza olanak tanır.
Gelişmiş belge yönetimi için, kaliteyi bozmadan dosya boyutunu azaltmak adına PDF'leri sıkıştırabilirsiniz. Bu büyük raporlara bakılırsa veya bant genişliği bir endişe olduğunda özellikle kullanışlıdır. Ayrıca, IronPDF tarafından sunulan geniş düzenleme yetenekleri kapsamlı PDF düzenleme eğitimimizde belgelenmiştir.
PDF Oluşturma Sayfası için Gezinti Nasıl Eklenir?
Gezinti, ASP.NET Core uygulamanızda kullanıcı deneyimi için çok önemlidir. PDF oluşturma sayfasını ana gezinmenize entegre ederek, kullanıcılar fonksiyonu elle URL yazmalarına gerek kalmadan kolayca erişebilir.
- Pages klasörüne gidin -> Shared klasörüne -> _Layout.cshtml. "Person" gezinme öğesini "Home"dan sonra yerleştirin.
asp-page attribute degerinin kesinlikle dosya adimiz ile eslesmesini saglayin, bu durumda "Persons". Bu, ASP.NET Core uygulamanız içinde uygun yönlendirmeyi sağlar:
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
PDF Oluşturmayı Çalıştırdığımda Ne Olur?
Bu, projeyi nasıl çalıştıracağınızı ve bir PDF belgesi oluşturacağınızı gösterir. "Person" gezinme bağlantısına tıkladığınızda, verileri tablo formatında görüntülenecektir. "Yazdır" düğmesine tıklamak PDF oluşturma sürecini başlatır, mevcut Razor Sayfası görünümünü indirilebilir bir PDF belgesine dönüştürür.
Üretilen PDF, Razor Sayfanızdaki tüm stil ve formatlamayı korur, web görünümünüz ve PDF çıktınız arasında tutarlı bir görünüm sağlar. Bu yaklaşım, uygulamanızın veritabanından veya iş mantığından gelen verileri gerektiren raporlar, faturalar veya diğer belgeleri oluşturmak için özellikle faydalıdır.
Tam Bir ASP.NET Core Web Uygulaması Örneğini Nereden İndirebilirim?
Bu kılavuzun tamamı için kodu sıkıştırılmış bir dosya olarak indirebilirsiniz, bunu Visual Studio'da bir ASP.NET Core Web Uygulaması projesi olarak açabilirsiniz.
Sıkça Sorulan Sorular
ASP.NET Core'da Razor Sayfalarını PDF'ye nasıl dönüştürebilirim?
ASP.NET Core'da Razor Sayfalarını PDF'ye IronPDF'nin RenderRazorToPdf metodunu kullanarak dönüştürebilirsiniz. Sadece IronPdf.Extensions.Razor paketini yükleyin ve ChromePdfRenderer ile .cshtml dosyalarınızı doğrudan PDF belgelerine dönüştürün.
Razor'ı PDF'ye dönüştürmek için hangi NuGet paketleri gereklidir?
İki NuGet paketine ihtiyaçınız var: IronPdf.Extensions.Razor (eklentisi paketi) ve IronPdf (ana paket). Her iki paket de ASP.NET Core Web Apps'te Razor Sayfalarını PDF belgelerine dönüştürmek için gereklidir.
Razor Sayfalarımda PDF'ye dönüştürürken dinamik veri kullanabilir miyim?
Evet, IronPDF Razor Sayfalarındaki dinamik verileri tamamen destekler. PDF'ye dönüştürürken C# kodu, model bağlaması ve tüm standart Razor sözdizimi özelliklerini kullanabilirsiniz. Bu, dinamik içerikle raporlar, faturalar ve sertifikalar oluşturmak için idealdir.
Razor Sayfalarından hangi tür belgeleri üretebilirim?
IronPDF'nin Razor'dan PDF'ye dönüşümü, raporlar, faturalar, sertifikalar, makbuzlar ve dinamik veri sunumu gerektiren diğer belgeler dahil olmak üzere çeşitli belge türleri oluşturmak için mükemmeldir. Mevcut HTML ve CSS stilinizi korurken.
Razor'ı PDF'ye dönüştürmeyi projemde ne kadar hızlı uygulayabilirim?
IronPDF ile Razor'ı PDF'ye dakikalar içinde dönüştürebilirsiniz. Minimum işlem yalnızca 5 adım içerir: kütüphaneyi yüklemek, bir model sınıfı eklemek, bir Razor Sayfası oluşturmak, RenderRazorToPdf metodunu kullanmak için .cs dosyasını düzenlemek ve uygulamanızı çalıştırmak.
Dönüşümüm HTML ve CSS stilimi koruyor mu?
Evet, IronPDF, Razor Sayfalarınızı PDF'ye dönüştürürken HTML ve CSS stilinizi korur. Bu, web görünümleriniz ve PDF çıktılarınız arasında oluşturduğunuz aynı stil ve düzeni kullanarak tutarlılığı sağlamanızı sağlar.

