CSHTML'yi C#'ta PDF'e Nasıl Dönüştürülür
CSHTML'yi PDF'ye dönüştürmek, birçok uygulamada yaygın bir gerekliliktir. Bu görev, C#'ta IronPDF kütüphanesi kullanılarak kolayca gerçekleştirilebilir.
IronPDF, geliştiricilerin PDF belgeleri programlı olarak oluşturmasına, okumasına, düzenlemesine ve dönüştürmesine olanak tanıyan popüler bir .NET kütüphanesidir. Bu makalede, C#'ta IronPDF ile CSHTML'den PDF'ye dönüştürmenin adımlarını örneklerle birlikte açıklayacağız.
Başlamadan önce, bu eğitimin gerekli olduğu bazı önemli kavramları tartışalım.
Önemli Kavramlar
PDF Dönüştürücü
PDF dönüştürücü, basılabilir herhangi bir belge veya web sayfasını PDF belgesine dönüştüren bir araçtır. HTML, Word, Excel veya diğer herhangi bir basılabilir belgeden PDF dosyaları oluşturmak için kullanılabilir. PDF dönüştürücüler, çevrimiçi araçlar, masaüstü yazılımlar ve kütüphaneler dahil çeşitli formlarda bulunur.
Razor Görünümü
Razor görünümü, ASP.NET Core'da HTML sayfalarını dinamik olarak oluşturmak için kullanılan bir görünüm motorudur. HTML işaretlemesini C# kodu ile birleştiren bir işaretleme dilidir.
Razor Görünümü
Razor görünümü, sunum mantığını iş mantığından ayırarak geliştiricilerin dinamik web sayfaları oluşturmasını kolaylaştırır.
Denetleyici Sınıfı
Bir denetleyici sınıfı, ASP.NET Core uygulamasında gelen HTTP isteklerini işleyen bir C# sınıfıdır. Belirli HTTP fiilleri (ör. GET, POST, PUT, DELETE) ile eşleşen yöntemler içerir ve bir HTTP yanıtı döndürür.
NuGet Paket Yöneticisi
NuGet Paket Yöneticisi, Visual Studio'da .NET projelerinde paketleri yönetmek için kullanılan bir araçtır. Geliştiricilerin projelerine paketler eklemelerini, güncellemelerini ve kaldırmalarını kolaylaştırır. NuGet paketleri, yeniden kullanılabilir kod içeren ve NuGet Paket Yöneticisi aracılığıyla dağıtılan kütüphanelerdir.
Bağımlılık Enjeksiyonu
Bağımlılık Enjeksiyonu, geliştiricilerin uygulama bileşenlerini, sınıflarına bağımlılıkları enjekte ederek ayırmasını sağlayan bir tasarım modelidir. Bağımlılıkları azaltarak ve kodu daha modüler hale getirerek uygulamaları test etmeyi ve bakımını kolaylaştırır.
Önemli kavramları ele aldığımıza göre, IronPDF kullanarak CSHTML'yi PDF'ye dönüştürme sürecine dalalım.
CSHTML Nedir?
CSHTML, C# Razor Syntax HTML anlamına gelir. Hem HTML işaretlemesi hem de C# kodu içeren bir dosya türüdür. Bu dosyalar, ASP.NET Core MVC uygulamalarında web sayfalarının kullanıcı arabirimini tanımlamak için kullanılır. Razor görünüm motoru, CSHTML dosyalarını yorumlamak ve bir web tarayıcısı tarafından işlenebilecek HTML çıktısı üretmek için kullanılır.
CSHTML5
IronPDF Nedir?
IronPDF, geliştiricilerin C#'ta PDF belgeleri oluşturmasına, okumasına, düzenlemesine ve dönüştürmesine olanak tanıyan güçlü bir .NET kütüphanesidir. Bu, .NET uygulamalarında programlı olarak PDF belgeleri oluşturmak için popüler bir araçtır. IronPDF, PDF oluşturma, PDF manipülasyonu, PDF dönüştürme ve PDF işleme gibi geniş bir özellik yelpazesini destekler.
IronPDF for .NET
How to Convert CSHTML HTML string to PDF files with IronPDF in C
IronPDF ile CSHTML'den PDF'ye dönüştürmek basit bir süreçtir. Kütüphane, HTML dosyalarını PDF belgelerine dönüştürmek için uygun bir API sunar. IronPDF kullanarak CSHTML'yi C#'ta PDF'ye dönüştürmek için adımlar:
Adım 1 IronPDF Yükle
İlk adım, C# projenize NuGet Paket Yöneticisi'nden IronPDF'i yüklemektir. IronPDF.dll dosyasını indirip proje referanslarınıza ekleyerek IronPDF'i yükleyebilirsiniz. NuGet Paket Yöneticisi kullanarak IronPDF'i yüklemek için Paket Yöneticisi Konsolunu açıp aşağıdaki komutu çalıştırın:
Adım 2 Bir CSHTML Dosyası Oluştur
Sonra, PDF'ye dönüştürmek istediğiniz içeriği içeren bir CSHTML dosyası oluşturun. Bu örnekte, "Hello, World!" metnini görüntüleyen bir CSHTML öğreticisi dosyası oluşturacağız.
@{
Layout = null;
}
Hello
Hello, World!@{
Layout = null;
}
Hello
Hello, World!@
If True Then
Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Hello Hello, World!Bu dosyayı proje dizininize "Hello.cshtml" olarak kaydedin.
C#'ta PDF Dosyaları
Adım 3 CSHTML'yi PDF Belgesine Dönüştürme
CSHTML'yi PDF'ye dönüştürmek için, C#'ta IronPDF kütüphanesini kullanacağız. "Hello.cshtml"'yi PDF'ye dönüştürmek için işte kod:
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace CSHTMLtoPDF.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
public HomeController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Index()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
return View(items);
}
public IActionResult DownloadPDF()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
// Initialize a new instance of ChromePdfRenderer from IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
// Set the headers to force the browser to download the PDF
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
// Return the PDF document to the client
return File(pdf.BinaryData, "application/pdf");
}
}
}using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace CSHTMLtoPDF.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
public HomeController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Index()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
return View(items);
}
public IActionResult DownloadPDF()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
// Initialize a new instance of ChromePdfRenderer from IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
// Set the headers to force the browser to download the PDF
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
// Return the PDF document to the client
return File(pdf.BinaryData, "application/pdf");
}
}
}Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Namespace CSHTMLtoPDF.Controllers
Public Class HomeController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
End Sub
Public Function Index() As IActionResult
Dim items = { "Item 1", "Item 2", "Item 3" }
Return View(items)
End Function
Public Function DownloadPDF() As IActionResult
Dim items = { "Item 1", "Item 2", "Item 3" }
' Initialize a new instance of ChromePdfRenderer from IronPDF
Dim renderer As New ChromePdfRenderer()
' Render the specified Razor view to a PDF document
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)
' Set the headers to force the browser to download the PDF
Dim contentDisposition = New System.Net.Mime.ContentDisposition With {
.FileName = "Items.pdf",
.Inline = False
}
Response.Headers.Add("Content-Disposition", contentDisposition.ToString())
' Return the PDF document to the client
Return File(pdf.BinaryData, "application/pdf")
End Function
End Class
End NamespaceBu kodu adım adım inceleyelim:
- İlk olarak, IronPDF ad alanı da dahil olmak üzere gerekli ad alanlarını yükleriz, bu da HTML'den PDF'ye dönüştürme işlevselliğini içerir.
- Ardından,
Indexyöntemi tanımlarız, bu yöntem yalnızca öğeler listesini bir Razor görünümüne döndürür. - PDF belgesini oluşturmakla sorumlu olan
DownloadPDFyöntemini tanımlarız. - İlk olarak bir
ChromePdfRendereroluşturucusu oluşturuyoruz. - Ardından
RenderRazorViewToPdfgenişletme metodunu kullanarak verilerle dolu bir Razor görünümünü PDF dosyasına dönüştürürüz. - Daha sonra PDF'nin tarayıcıda görüntülenmek yerine indirilmeye zorlanması için
Content-Dispositionbaşlıklarını ayarlarız. - Son olarak, PDF belgesini bir dosya olarak File yöntemiyle döndürürüz.
Bu, IronPDF ile C#'ta CSHTML'yi PDF'ye dönüştürmek için temel koddur. Ancak, PDF çıktısını özelleştirmek için kullanabileceğiniz birçok seçenek ve ayar vardır. Bu seçeneklerden bazılarına bakalım.
PDF Çıkışı Dönüş Dosyasını Özelleştirme
IronPDF, PDF dosyası çıktısını özelleştirmek için birçok seçenek sunar. sayfa boyutu, kenar boşlukları, yönlendirme, başlık ve altbilgi gibi seçenekleri ayarlayabilirsiniz. İşte PDF çıktısını özelleştirmek için bir örnek:
using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Initialize a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10; // Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20; // Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20; // Set right margin in millimeters
// Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, // Height of header in millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, // Height of footer in millimeters
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true // Draw a line above the footer
};
// Convert HTML content to PDF
var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");
// Save the PDF to the file system
pdf.SaveAs("Hello.PDF");
}
}
}using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Initialize a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10; // Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20; // Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20; // Set right margin in millimeters
// Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, // Height of header in millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, // Height of footer in millimeters
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true // Draw a line above the footer
};
// Convert HTML content to PDF
var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");
// Save the PDF to the file system
pdf.SaveAs("Hello.PDF");
}
}
}Imports IronPdf
Namespace ConsoleApp
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize a new instance of ChromePdfRenderer
Dim renderer = New ChromePdfRenderer()
' Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10 ' Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10 ' Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20 ' Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20 ' Set right margin in millimeters
' Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.MaxHeight = 20,
.HtmlFragment = "<img src='logo.png'>",
.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
}
' Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.MaxHeight = 15,
.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
.DrawDividerLine = True
}
' Convert HTML content to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>")
' Save the PDF to the file system
pdf.SaveAs("Hello.PDF")
End Sub
End Class
End NamespaceBu örnekte, ilk olarak ChromePdfRenderer sınıfının bir örneğini oluştururuz. Sonra çeşitli seçenekler ayarlamak için ChromePdfRenderer sınıfının RenderingOptions özelliğini kullanırız. İşte ayarladığımız bazı seçenekler:
MarginTop,MarginBottom,MarginLeft,MarginRight: PDF belgesinin kenar boşluklarını ayarlar.HtmlHeader: PDF belgesinin üstbilgisini bir logo gösterecek şekilde ayarlar.HtmlFooter: PDF belgesinin altbilgisini sayfa numarası ve toplam sayfa gösterecek şekilde ayarlar.
Seçenekleri ayarladıktan sonra, HTML içeriği ile RenderHtmlAsPdf yöntemini çağırırız. Son olarak, PDF belgesini "Hello.PDF" adlı bir dosyaya kaydederiz.
Uygulamayı Test Et
Gerekli olan tüm kodlar mevcut olduğunda, uygulamayı şimdi test edebiliriz. Bu adımları takip edin:
- Uygulamayı F5 tuşuna basarak veya Visual Studio'daki yeşil "Play" düğmesine tıklayarak çalıştırın.
- Web tarayıcınızda
http://localhost:/Home/Indexadresine gidin, port numarası Visual Studio tarafından atanmıştır. - Öğelerin listesinin doğru bir şekilde görüntülendiğini doğrulayın.
- PDF belgesini oluşturmak ve indirmek için "PDF'yi İndir" bağlantısına tıklayın.
Her şey doğru çalışıyorsa, daha önce tanımladığınız öğe listesini içeren bir PDF belgesi görmelisiniz.
IronPDF ile PDF'yi CSHTML Dosyasına Dönüştürme
PDF'den CSHTML'ye
IronPDF ile bir PDF'yi bir CSHTML dosyasına dönüştürmeyi nasıl yapacağınızı göstermek için Visual Studio'da yeni bir Konsol Uygulaması oluşturacak ve örnek bir PDF belgesini bir CSHTML dosyasına dönüştürmek için IronPDF'i kullanacağız. Bu adımları takip edin:
Adım 1 Yeni Bir Konsol Uygulaması Oluştur
Visual Studio'yu açın ve menüden "Dosya > Yeni > Proje"yi seçerek, "Konsol Uygulaması (.NET Framework)" veya "Konsol Uygulaması (.NET Core)" projeleri listesinden seçerek yeni bir Konsol Uygulaması oluşturun.
Adım 2 IronPDF NuGet Paketini Yükle
Sonra, Konsol Uygulamamızda IronPDF NuGet paketini yüklememiz gerekiyor. Bunu yapmak için, Çözüm Gezgini'nde projeye sağ tıklayın ve bağlam menüsünden "NuGet Paketlerini Yönet"i seçin.
NuGet Paket Yöneticisi'nde "IronPDF" araması yapın ve arama sonuçlarından "IronPDF" paketini seçin. Paket ve bağımlılıklarını yüklemek için "Yükle" düğmesine tıklayın.
Adım 3 Projeye PDF ve CSHTML Dosyaları Ekleyin
Bu örnekte, bir CSHTML dosyasına dönüştürmek istediğimiz örnek bir PDF dosyası kullanacağız. Bu adım için istediğiniz herhangi bir PDF dosyasını kullanabilirsiniz.
PDF dosyasını projeye eklemek için, Çözüm Gezgini'nde projenin üzerine sağ tıklayın ve bağlam menüsünden "Varolan Öğeyi Ekle"yi seçin.
Ayrıca, dönüştürülmüş HTML dizisini depolamak için kullanacağımız boş bir CSHTML dosyası oluşturmamız gerekiyor. Bunu yapmak için, Çözüm Gezgini'nde projeye sağ tıklayın ve bağlam menüsünden "Yeni Öğeyi Ekle"yi seçin. Şablonlar listesinden "HTML Sayfası" seçin, ardından dosyaya bir ad (ör. "converted.cshtml") verin ve "Ekle"ye tıklayın.
Adım 4 PDF'yi CSHTML Dosyasına Dönüştürün
Gerekli dosyalar yerleştirildikten sonra, PDF'yi IronPDF kullanarak bir CSHTML dosyasına dönüştürmek için kodu yazabiliriz. Konsol Uygulamanızın Main yöntemine aşağıdaki kodu ekleyin:
using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string[] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
System.IO.File.WriteAllText("converted.cshtml", html);
}
}
}using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string[] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
System.IO.File.WriteAllText("converted.cshtml", html);
}
}
}Imports IronPdf
Namespace PdfToHtml
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Load the PDF file
Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")
' Convert the PDF to an HTML string
Dim html As String = pdf.ToHtml()
' Save the HTML string to the CSHTML file
System.IO.File.WriteAllText("converted.cshtml", html)
End Sub
End Class
End NamespaceNeden IronPDF kullanmalısınız?
IronPDF, birkaç önemli nedenden dolayı .NET geliştiricileri arasında popüler bir seçimdir:
Güçlü PDF oluşturma yetenekleri: IronPDF, PDF sayfalarına metin, resimleri ve diğer içerikleri ekleme kabiliyeti dahil olmak üzere, mevcut PDF belgelerini birleştirmek ve ayırmak gibi, PDF belgelerini programlı olarak oluşturmak ve manipüle etmek için geniş bir özellik yelpazesi sunar.
Çok yönlü PDF dönüştürme yetenekleri: IronPDF, geliştiricilerin PDF belgeleri oluşturmasına olanak tanımakla kalmaz, aynı zamanda PDF'leri HTML dizelerine veya CSHTML dosyalarına dönüştürme işlevi de sunar. Bu, PDF içeriğini bir Web Uygulamasında görüntülemeniz gerektiğinde veya PDF belgelerinden verileri çıkarıp web tabanlı bir iş akışında kullanmanız gerektiğinde kullanışlı olabilir.
Kullanımı kolay API: IronPDF'in API'si programlı olarak PDF belgeleri oluşturmak ve manipüle etmek için geliştiricilere yardımcı olan geniş bir yardımcı yöntem ve özellik yelpazesi ile sezgisel ve kolay kullanımlı olacak şekilde tasarlanmıştır.
Güçlü topluluk desteği: IronPDF'in, gelişimine katkıda bulunan ve kütüphaneyi kullanan diğer geliştiricilere destek sağlayan geniş ve aktif bir .NET geliştirici topluluğu vardır.
İyi dökümantasyon: IronPDF'in dökümantasyonu kapsamlı ve iyi organize edilmiş olup, detaylı API referans dökümantasyonu, öğreticiler ve örnekler içerir, bu da geliştiricilerin kütüphaneyi kullanmaya başlamalarını ve nasıl kullanacaklarını öğrenmelerini kolaylaştırır.
IronPDF'nin güçlü PDF oluşturma ve dönüştürme yeteneklerinin, kullanımı kolay API'sinin, güçlü topluluk desteğinin ve iyi belgelerinin birleşimi, PDF belgeleriyle çalışması gereken uygulamalarında .NET geliştiricileri arasında popüler bir tercih olmasını sağlamaktadır.
Sonuç
CSHTML'yi PDF'ye dönüştürmek, birçok uygulamada yaygın bir gerekliliktir. IronPDF ile, bu görev C# içinde kolaylıkla gerçekleştirilebilir. Bu makalede, IronPDF ile CSHTML'yi PDF'ye dönüştürme adımlarını ve örneklerini sizlere anlattık.
Ayrıca, kağıt boyutu, kenar boşlukları, başlık ve alt bilgi gibi çeşitli seçenekleri ayarlayarak PDF çıktısını nasıl özelleştireceğinizi gösterdik. IronPDF ile, CSHTML dosyalarınızdan hızlı ve kolay bir şekilde yüksek kaliteli PDF belgeleri oluşturabilirsiniz.
PDF belgelerini sıfırdan oluşturmanız, PDF'leri HTML stringlerine veya CSHTML dosyalarına dönüştürmeniz ya da PDF belgelerinden veri çıkartmanız gerektiğinde, IronPDF işi kolayca halletmenizi sağlayan esnek ve sezgisel bir API sunar.
Güçlü topluluk desteği ve kapsamlı dokümantasyonu ile IronPDF, uygulamalarında PDF'lerle çalışması gereken .NET geliştiricileri arasında popüler bir seçimdir. Iron Software paketini satın alarak geliştiriciler, yaygın dosya formatları ile çalışmak için kapsamlı bir .NET kütüphane setine indirimli bir fiyatla erişim sağlayabilirler, bu da onu herhangi bir .NET geliştirme takımı için mükemmel bir değer haline getirir.
.NET uygulamalarınızda PDF belgeleriyle çalışmanız gerekiyorsa, IronPDF kesinlikle dikkate değer. Güçlü özellikleri, kolay kullanımı ve çeşitli lisanslama seçenekleri ile işinizi hızlı ve verimli bir şekilde tamamlamanıza yardımcı olabilecek çok yönlü ve güvenilir bir araçtır.
