ASP.NET Core C# Uygulamasında Razor Sayfalarını PDF'lere Dönüştürme
IronPDF, RenderRazorToPdf yöntemini kullanarak ASP.NET Core uygulamalarında Razor Pages (.cshtml dosyaları) ile PDF belgeleri arasında sorunsuz dönüştürme sağlar ve C# ile HTML işleme için tam destek sunarak web içeriğinden PDF oluşturmayı basitleştirir.
Razor Sayfası, web içeriği oluşturmak için C# ve HTML'yi birleştiren .cshtml uzantılı bir dosyadır. ASP.NET Core'da, Razor Sayfaları web uygulamaları için kod organize etmenin daha basit bir yoludur, okunabilir veya basit veri girişi yapar.
Bir ASP.NET Core Web Uygulaması, modern web uygulamaları geliştirmek için platformlar arası bir framework olan ASP.NET Core kullanılarak oluşturulan bir web uygulamasıdır.
IronPDF, bir ASP.NET Core Web Uygulama projesi içinde Razor Sayfalarından PDF dosyaları oluşturma işlemini basitleştirir. Bu, ASP.NET Core Web Uygulamalarında PDF oluşturmayı kolaylaştırır.
Hızlı Başlangıç: Razor Sayfalarını Saniyeler İçinde PDF'ye Dönüştürme
Razor Sayfalarınızı, ASP.NET Core uygulamasında yüksek kaliteli PDF'lere dönüştürün. RenderRazorToPdf yöntemini kullanarak, CSHTML dosyalarını PDF belgelerine dönüştürebilir, iş akışınızı optimize edebilir ve belge dağıtımını iyileştirebilirsiniz. Bu kılavuz, bunu dakikalar içinde başarmak için gerekli basit adımları adım adım açıklıyor.
-
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.
// Install-Package IronPdf.Extensions.Razor var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml"); -
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 sayfalarını PDF'ye dönüştürmek için C# kütüphanesini indirin
- Veri için bir model sınıfı ekleyin
- Yeni bir Razor Sayfası oluşturun ve veriyi 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şturmak için güçlü ve sezgisel bir yol sağlar. IronPDF'nin render yetenekleri ile birleştirildiğinde, geliştiriciler web içeriklerinden doğrudan profesyonel PDF belgeleri oluşturabilir. Bu yaklaşım karmaşık PDF oluşturma mantığını ortadan kaldırır ve mevcut HTML ve CSS yeteneklerinizi kullanmanıza olanak tanır.
IronPDF ile Razor Sayfaları arasındaki entegrasyon, raporlar, faturalar, sertifikalar ve dinamik veri sunumu gerektiren diğer belgeler üretmek için özellikle değerlidir. Halihazırda aşina olduğunuz Razor sözdizimini kullanarak, artırılmış tutarlılık sağlarken web görünümleriniz ve PDF çıktılarınız arasında tutarlılığı koruyabilirsiniz.
Razor'dan PDF'ye Dönüştürme İçin Hangi NuGet Paketlerine İhtiyacım Var?
IronPdf.Extensions.Razor paketi, ana IronPdf paketinin bir uzantısıdır. ASP.NET Core Web Uygulamasında Razor Pages'ı PDF belgelerine dönüştürmek için hem IronPdf.Extensions.Razor hem de IronPdf paketleri gereklidir. Ayrıntılı kurulum talimatları için kurulum genel bakış 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
IronPDF.Extensions.Razor/ASP.NET Core'da Razor Sayfalarını 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 Uygulaması projesi gerekecek. Süreç, verileriniz için bir model oluşturmayı, bu verileri görüntülemek için bir Razor Sayfası kurmayı ve ardından IronPDF'nin RenderRazorToPdf yöntemini kullanarak PDF çıktısını oluşturmayı içerir.
Neden PDF Oluşturma İçin Bir Model Sınıfına İhtiyacım Var?
Model sınıfları, Razor Sayfalarınızda veri sunumunun omurgası olarak hizmet eder. Denetleyici mantığınızdan görünümünüze veri geçişinin yapılandırılmış bir yolunu sağlar, tür güvenliğini ve sürdürülebilirliği sağlar. PDF oluştururken, bu modeller daha da önemli hale gelir çünkü son belgenizde görünecek verilerin tam yapısını tanımlarlar.
- Projeye yeni bir klasör oluştur ve "Models" adını ver.
- Klasöre standart bir C# sınıfı ekleyin ve adına
Personadını verin. Bu sınıf, bireysel veri için bir model görevi görecektir. 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üşümü İçin Bir Razor Sayfası Nasıl Ayarlarım?
"Pages" klasörüne boş bir Razor Sayfası ekleyin ve adına persons.cshtml adını verin.
- Aşağıda verilen kod örneğini kullanarak yeni oluşturulan
Persons.cshtmldosyasını değiştirin.
Aşağıdaki kod bilgiyi tarayıcıda görüntüler. Razor sözdiziminin, C# kodunu HTML içinde sorunsuz bir şekilde entegrasyon yapmasına nasıl izin verdiğine dikkat edin, bu da dönüştürülebilecek dinamik içerik oluşturmak için mükemmel 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'lere Dönüştürme
Ardından, aşağıdaki kod önce ChromePdfRenderer sınıfını başlatır. Bunu RenderRazorToPdf yöntemine aktarmak, bu Razor Sayfasını bir PDF belgesine dönüştürmek için yeterlidir.
RenderingOptions'ta mevcut olan özelliklere tam erişiminiz var. Bu özellikler, oluşturulan PDF'ye sayfa numaraları uygulama, özel kenar boşlukları ayarlama ve özel metin ve HTML başlıklarını ve alt bilgilerini ekleme yeteneğini içerir. PDF'lerinizin doğru bir şekilde tanımlandığından ve aranabilirliğin sağlandığından emin olmak için meta veriler yapılandırabilirsiniz.
Persons.cshtmldosyasının açılır menüsünü açarakPersons.cshtml.csdosyasını görüntüleyin.Persons.cshtml.cs'yi 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 düzenlemeye tabi tutulabilen bir PdfDocument nesnesi döndürür. PDF'yi PDFA veya PDFUA olarak dışa aktarabilir, oluşturulan PDF belgesine dijital imza ekleyebilir veya PDF belgelerini birleştirebilir ve bölebilirsiniz. Yöntem ayrıca sayfaları döndürme, açıklamalar veya yer imleri ekleme ve PDF'nize özel filigranlar damgalamanıza olanak tanır.
Gelişmiş belge yönetimi için, dosya kalitesinden ödün vermeden dosya boyutunu azaltmak amacıyla PDF'leri sıkıştırabilirsiniz. Bu, özellikle büyük raporlarla uğraşırken veya bant genişliği bir endişe olduğunda kullanışlıdır. Ayrıca, IronPDF tarafından sunulan kapsamlı düzenleme yetenekleri, kapsamlı PDF düzenleme kılavuzumuzda belgelenmiştir.
PDF Oluşturma Sayfası İçin Nasıl Gezinme Eklenir?
Gezinme, ASP.NET Core uygulamanızda kullanıcı deneyimi için çok önemlidir. Ana gezinmenize PDF oluşturma sayfasını entegre ederek kullanıcılar, URL'leri elle girmeden bu işlevselliğe kolayca erişebilir.
- Pages klasörüne gidin -> Shared klasörü -> _Layout.cshtml. "Person" gezinme öğesini "Home"'dan sonra yerleştirin.
asp-page özniteliğinin değeri, dosya adımızla tam olarak eşleşmelidir; bu durumda dosya adı Persons'dir. Bu, ASP.NET Core uygulamanızda doğru yönlendirilmeyi 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şturma Ç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öreceksiniz. "Yazdır" düğmesine tıklamak, PDF oluşturma sürecini tetikler ve mevcut Razor Sayfa görünümünü indirilebilir bir PDF belgesine dönüştürür.
Oluşturulan PDF, Razor Sayfanızdaki tüm stil ve biçimlendirmeleri koruyarak 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ı veya iş mantığından alınan verileri gerektiren raporlar, faturalar veya diğer belgeler oluşturmak için özellikle kullanışlıdır.
Tamamlanmış Bir ASP.NET Core Web Uygulaması Örneğini Nereden İndirebilirim?
Bu kılavuzun tam kodunu zipli dosya olarak indirip, Visual Studio'da bir ASP.NET Core Web Uygulaması projesi olarak açabilirsiniz.
RazorPageSample.zip ASP.NET Core Web Uygulaması Projesini İndirin
Sıkça Sorulan Sorular
ASP.NET Core'da Razor Sayfalarını PDF'e nasıl dönüştürebilirim?
IronPDF'in RenderRazorToPdf metodunu kullanarak ASP.NET Core'da Razor Sayfalarını PDF'e dönüştürebilirsiniz. Basitçe, IronPdf.Extensions.Razor paketini yükleyin ve .cshtml dosyalarınızı doğrudan PDF belgelerine dönüştürmek için ChromePdfRenderer'ı kullanın.
Razor'dan PDF'e dönüşüm için hangi NuGet paketlerine ihtiyaç duyuluyor?
İki NuGet paketine ihtiyacınız var: IronPdf.Extensions.Razor (genişletme paketi) ve IronPdf (ana paket). Her iki paket de ASP.NET Core Web Uygulamalarında Razor Sayfalarını PDF belgelerine dönüştürmek için gereklidir.
Razor Sayfalarımı PDF'e dönüştürürken dinamik veri kullanabilir miyim?
Evet, IronPDF, Razor Sayfalarındaki dinamik verileri tam olarak destekler. C# kodu, model bağlama ve tüm standart Razor sözdizimi özelliklerini PDF'e dönüştürürken kullanabilirsiniz, bu da dinamik içerikle raporlar, faturalar ve sertifikalar üretmek için idealdir.
Razor Sayfalarından hangi tür belgeler üretebilirim?
IronPDF'in Razor'dan PDF'e dönüşümü, raporlar, faturalar, sertifikalar, makbuzlar ve dinamik veri sunumu gerektiren diğer belgeler gibi çeşitli belge türlerini üretmek için mükemmeldir, mevcut HTML ve CSS stilinizi koruyarak.
Projemde Razor'dan PDF'e dönüşümü ne kadar hızlı uygulayabilirim?
IronPDF ile dakikalar içinde Razor'dan PDF'e dönüşüm uygulayabilirsiniz. Minimal iş akışı sadece 5 adım içerir: kütüphaneyi yüklemek, bir model sınıfı eklemek, bir Razor Sayfası oluşturmak, .cs dosyasını RenderRazorToPdf metodu kullanacak şekilde düzenlemek ve uygulamanızı çalıştırmak.
Dönüşüm, HTML ve CSS stilimi korur mu?
Evet, IronPDF, Razor Sayfalarını PDF'e dönüştürürken HTML ve CSS stilinizi korur. Bu, web görünümleriniz ve PDF çıktılarınız arasında tutarlılığı korumanıza ve zaten oluşturduğunuz stil ve yerleşimi kullanmanıza olanak tanır.

