C#'da CSHTML'den PDF'ye Nasıl Dönüştürülür?
CSHTML'yi PDF'ye dönüştürmek birçok uygulamada yaygın bir gereksinimdir. Bu görev, C# ile IronPDF kütüphanesini kullanarak kolaylıkla gerçekleştirilebilir.
IronPDF, geliştiricilerin PDF belgelerini programlı bir şekilde oluşturmasını, okumasını, düzenlemesini ve dönüştürmesini sağlayan popüler bir .NET kütüphanesidir. Bu makalede, C# ile CSHTML'yi IronPDF ile PDF'ye dönüştürmenin adımlarını örneklerle birlikte inceleyeceğiz.
Başlamadan önce, bu eğitim için gerekli olan bazı önemli kavramları tartışalım.
Önemli Kavramlar
PDF Dönüştürücü
PDF dönüştürücü, her türlü yazılabilir belgeyi veya web sayfasını bir PDF belgesine dönüştüren bir araçtır. HTML, Word, Excel veya herhangi başka bir yazı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 olmak üzere çeşitli formlarda gelir.
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ü, geliştiricilerin sunum mantığını iş mantığından ayırarak dinamik web sayfaları oluşturmasını kolaylaştırır.
Denetleyici Sınıfı
Denetleyici sınıfı, bir ASP.NET Core uygulamasında gelen HTTP taleplerini işleyen bir C# sınıfıdır. Özgül HTTP fiillerine (ör., GET, POST, PUT, DELETE) karşılık gelen yöntemler içerir ve bir HTTP yanıtı döndürür.
NuGet Paket Yöneticisi
NuGet Paket Yöneticisi, .NET projelerinde paketleri yönetmek için Visual Studio'da kullanılan bir araçtır. Geliştiricilerin projelerindeki paketleri kurmasını, güncellemasını ve kaldırması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.
Bagimli Enjeksiyon
Bağımlılık enjeksiyonu, geliştiricilerin sınıflarına bağımlılıkları enjekte ederek uygulama bileşenlerini birbirinden ayırmalarına izin veren bir tasarım desenidir. Kodun daha modüler olmasını sağlayarak bağımlılıkları azaltır ve uygulamaların test edilmesini ve bakımını kolaylaştırır.
Artık ö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 Sözdizimi HTML anlamına gelir. HTML işaretlemesini ve C# kodunu içeren bir dosya türüdür. Bu dosyalar, ASP.NET Core MVC uygulamalarında web sayfalarının kullanıcı arayüzünü tanımlamak için kullanılır. Razor görünüm motoru, CSHTML dosyalarını yorumlayarak bir web tarayıcısı tarafından render edilebilen HTML çıktısı üretir.
CSHTML5
IronPDF Nedir?
IronPDF, geliştiricilerin C# ile 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 düzenleme, PDF dönüştürme ve PDF render etme dahil olmak üzere geniş bir özellik yelpazesini destekler.
IronPDF for .NET
How to Convert CSHTML HTML string to PDF files with IronPDF in C
IronPDF ile CSHTML'yi PDF'ye dönüştürmek basit bir işlemdir. Kütüphane, HTML dosyalarını PDF belgelerine dönüştürmek için uygun bir API sunar. IronPDF ile C#'ta CSHTML'yi PDF'ye dönüştürmenin adımları şunlardır:
Adım 1 IronPDF'i Yükleyin
İlk adım, C# projenize NuGet Paket Yöneticisi üzerinden IronPDF'i yüklemektir. IronPDF'i indirip IronPDF.dll dosyasını yükleyerek ve proje referanslarınıza ekleyerek yükleyebilirsiniz. NuGet Paket Yöneticisi'ni kullanarak IronPDF'i yüklemek için, Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:
Adım 2 Bir CSHTML Dosyası Oluşturun
Sonraki adımda, PDF'ye dönüştürmek istediğiniz içeriği içeren bir CSHTML dosyası oluşturun. Bu örnekte, "Merhaba, Dünya!" metnini görüntüleyen basit bir CSHTML eğitimi 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ür
CSHTML dosyasını PDF'ye dönüştürmek için, IronPDF kutuphanesini C# içinde kullanacağız. "Hello.cshtml" dosyasını 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, HTML'yi PDF'ye dönüştürme işlevselliğini içeren IronPDF ad alanı dahil gerekli ad alanlarını ithal ediyoruz.
- Daha sonra bir listeyi Razor görünümüne döndüren
Indexyöntemini tanımlarız. - PDF belgesini oluşturmaktan sorumlu
DownloadPDFyöntemini tanımlarız. - Bir
ChromePdfRendereroluşturucu oluşturarak başlarız. - Sonra verilerle birlikte bir Razor görünümünü PDF dosyasına dönüştürmek için
RenderRazorViewToPdfuzantı yöntemini kullanırız. - Daha sonra PDF'in tarayıcıda görüntülenmek yerine indirilmesini zorlamak için
Content-Dispositionbaşlıklarını ayarlarız. - Son olarak, PDF belgesini File metodu kullanarak bir dosya olarak iade ediyoruz.
Bu, C# içinde IronPDF ile 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 bulunmaktadır. Bu seçeneklerden bazılarına bir göz atalım.
PDF Çıktı dosyasını özelleştirme
IronPDF, PDF dosya çı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. PDF çıktısını nasıl özelleştireceğiniz hakkında bir örnek işte burada:
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, önce ChromePdfRenderer sınıfının bir örneğini oluşturuyoruz. Daha sonra ChromePdfRenderer sınıfının RenderingOptions özelliğini kullanarak çeşitli ayarları yapıyoruz. İşte bazı ayarladığımız seçenekler:
MarginTop,MarginBottom,MarginLeft,MarginRight: PDF belgesinin kenar boşluklarını ayarlar.HtmlHeader: PDF belgesinin başlığını bir logo gösterecek şekilde ayarlar.HtmlFooter: PDF belgesinin altbilgisini sayfa numarası ve toplam sayfaları gösterecek şekilde ayarlar.
Ayarlar yapıldıktan sonra, HTML içeriğiyle RenderHtmlAsPdf metodunu çağırırız. Sonunda, PDF belgesini "Hello.PDF" adlı bir dosya olarak kaydediyoruz.
Uygulamayı test et
Gerekli tüm kodlar yerindeyken artık uygulamayı test edebiliriz. Aşağıdaki adımları izleyin:
- Visual Studio'da F5 tuşuna basarak veya yeşil "Oynat" düğmesine tıklayarak uygulamayı çalıştırın.
- Web tarayıcınızda, Visual Studio tarafından atanan port numarası olan
http://localhost:/Home/Indexkonumuna gidin. - Öğelerin listesinin doğru görüntülendiğini doğrulayın.
- "PDF İndir" bağlantısına tıklayın ve PDF belgesini oluşturup indirin.
Her şey doğru çalışıyorsa, tanımladığınız öğe listesini içeren bir PDF belgesi görmelisiniz.
IronPDF ile bir PDF'yi bir CSHTML Dosyasına Dönüştürme
PDF'den CSHTML'ye
IronPDF ile bir PDF dosyasını 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şturacağız ve örnek bir PDF belgesini bir CSHTML dosyasına dönüştürmek için IronPDF kullanacağız. Bu adımları izleyin:
Adım 1 Yeni bir Konsol Uygulaması Oluşturun
Visual Studio'yu açın ve menüden "Dosya > Yeni > Proje"yi seçerek, ardından proje şablonları listesinden "Konsol Uygulaması (.NET Framework)" veya "Konsol Uygulaması (.NET Core)" seçerek yeni bir Konsol Uygulaması oluşturun.
Adım 2 IronPDF NuGet Paketini Yükleyin
Ardından, 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öneticisinde, "IronPDF" arayın ve arama sonuçlarından "IronPDF" paketini seçin. Paketi 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 örnek için, 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.
Çözüm Gezgini'nde projeye sağ tıklayıp bağlam menüsünden "Varolan Öğe Ekle"yi seçerek PDF dosyasını projeye ekleyin.
Ayrıca, dönüştürülmüş HTML dizgisini depolamak için kullanacağımız boş bir CSHTML dosyası oluşturmamız gerekecek. Bunu yapmak için Çözüm Gezgini'nde projeye sağ tıklayın ve bağlam menüsünden "Yeni Öğe Ekle"yi seçin. Şablonlar listesinden "HTML Sayfası"nı seçin, ardından dosyaya bir ad verin (örneğin, "converted.cshtml") ve "Ekle"ye tıklayın.
Adım 4 PDF'yi bir CSHTML Dosyasına Dönüştürün
Gerekli dosyalar yerinde olduğunda, artık PDF'yi IronPDF kullanarak bir CSHTML dosyasına dönüştürmek için kodu yazabiliriz. Konsol Uygulamanızın Ana metoduna 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 .NET geliştiricileri arasında birkaç önemli neden dolayı popülerdir:
Güçlü PDF oluşturma yetenekleri: IronPDF, PDF belgelerini programatik olarak oluşturma ve işleme için geniş bir özellik yelpazesi sağlar, bu da PDF sayfalarına metin, resim ve diğer içerik ekleme yeteneği ile mevcut PDF belgelerini birleştirme ve ayırma yeteneğini içerir.
Çok yönlü PDF dönüştürme yetenekleri: IronPDF, geliştiricilere PDF belgelerini oluşturmanın yanı sıra, PDF'leri HTML dizilerine veya CSHTML dosyalarına dönüştürme işlevselliği de sunar. Bu, PDF içeriğini bir Web Uygulamasında görüntülemeniz veya PDF belgelerinden veri çıkarıp web tabanlı bir iş akışında kullanmanız gerektiği durumlarda faydalı olabilir.
Kullanımı kolay API: IronPDF'nin API'sı, geliştiricilerin PDF belgelerini programatik olarak oluşturup işlemeleri için bir dizi yardımcı metod ve özellikler sunarak sezgisel ve kolay kullanımlı olacak şekilde tasarlanmıştır.
Güçlü topluluk desteği: IronPDF, kütüphanesini kullanan diğer geliştiricilere destek sağlayan büyük ve aktif bir .NET geliştirici topluluğuna sahiptir.
İyi belgelenmiş: IronPDF'nin belgeleri geniş kapsamlı ve iyi organize edilmiştir, ayrıntılı API referansı belgeleri, öğreticiler ve örnekler ile, geliştiricilerin başlamasını ve kütüphaneyi nasıl kullanacaklarını öğrenmelerini kolaylaştırmak üzere tasarlanmıştır.
IronPDF'nin güçlü PDF oluşturma ve dönüştürme yetenekleri, kullanımı kolay API'sı, güçlü topluluk desteği ve iyi belgelenmiş olması, uygulamalarında PDF belgeleriyle çalışmak zorunda olan .NET geliştiricileri arasında popüler bir seçenek haline gelir.
Sonuç
CSHTML'yi PDF'ye dönüştürmek birçok uygulamada yaygın bir gereksinimdir. IronPDF ile bu görev C# içinde kolayca gerçekleştirilebilir. Bu makalede, IronPDF ile CSHTML'yi PDF'ye dönüştürme adımlarını, örneklerle birlikte gösterdik.
Ayrıca kağıt boyutu, kenar boşlukları, başlık ve altbilgi gibi çeşitli seçenekleri ayarlayarak PDF çıktısını nasıl özelleştireceğinizi gösterdik. IronPDF ile, CSHTML dosyalarınızdan yüksek kaliteli PDF belgelerini hızla ve kolayca oluşturabilirsiniz.
İster sıfırdan PDF belgeleri oluşturmak, ister PDF'leri HTML dizgelerine veya CSHTML dosyalarına dönüştürmek, ister PDF belgelerinden veri çıkarmak isteyin, IronPDF esnek ve sezgisel bir API sağlar ve işinizi kolayca gerçekleştirmenizi sağlar.
Güçlü topluluk desteği ve kapsamlı belgeleri ile IronPDF, uygulamalarında PDF'lerle çalışmak zorunda olan .NET geliştiricileri arasında popüler bir seçenektir. Ve Iron Software paketini satın alarak, geliştiriciler genellikle dosya formatlarıyla çalışmak için kapsamlı bir .NET kütüphaneleri setine indirimli bir fiyattan erişebilir, bu da her .NET geliştirme takımı için mükemmel bir değer sunar.
.NET uygulamalarınızda PDF belgeleriyle çalışmanız gerekiyorsa, IronPDF kesinlikle göz önünde bulundurulmaya değer. Güçlü özellikleri, kullanışlılığı ve çeşitli lisanslama seçenekleri ile hızlı ve verimli bir şekilde işinizi yapmanıza yardımcı olacak çok yönlü ve güvenilir bir araçtır.
