C#'ta Bir PDF'i Bayt Dizisine Nasıl Cevirirsiniz
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
ASP.NET MVC görünümlerini PDF belgelerine dönüştürmek modern web uygulamalarında temel bir gereksinimdir. İster faturalar, raporlar, ister sertifikalar oluşturuyor olun, zorluk açıktır: Razor görünümlerini, biçimlendirme ve stilini koruyan profesyonel PDF dosyalarına nasıl dönüştürebilirsiniz? Bu kılavuz, eski iText kütüphanesini ve .NET -- modern Chromium destekli çözüm -- karşılaştırır, böylece PDF üretim iş akışınız için doğru aracı seçebilirsiniz.

Neden MVC Görünümlerini PDF'e Dönüştürmelisiniz?
İşletmeler, sayısız kritik operasyonlar için PDF oluşturma işlevine güvenir. Fatura sistemlerinin kurcalamaya karşı korumalı faturalama belgelerine ihtiyacı vardır. İK departmanları istihdam sertifikaları ve sözleşmeler üretir. Satış ekipleri teklifler ve öneriler hazırlar. Eğitim platformları tamamlanma sertifikaları dağıtır. Her bir senaryo, tüm cihazlar ve platformlar arasında tutarlı biçimlendirme sağlayan sunucu tarafı PDF oluşturmalarını gerektirir.
ASP.NET Çekirdek belgelendirmesi'ne göre, Razor görünümleri, dinamik içerik oluşturmak için mükemmel bir şablon sistemi sağlar ve ardından PDF'e dönüştürülebilir. Ana soru, hangi kütüphanenin size en doğru, bakımı kolay ve yasal olarak uygun çözümü sunduğudur.

iText MVC'den PDF'ye Dönüşümü Nasıl Yönetir?
iText, on yılı aşkın bir süredir .NET PDF üretiminde temel bir unsurdur. Başlangıçta Java iText kütüphanesinden taşınan bu kütüphane, PDF oluşturma üzerinde düşük seviyede kontrol sağlamaktadır. Ancak, HTML dönüştürme yaklaşımı, modern web içeriğiyle uğraşırken yaşını göstermektedir.
iText Kurulumu
iText'i ASP.NET Core MVC projenize eklemek için Paket Yöneticisi Konsolu'nu kullanarak NuGet paketini yükleyin:
Install-Package iTextSharp
Install-Package iTextSharp

iText ile Temel Uygulama
ASP.NET MVC projenizde iText'in XMLWorkerHelper sınıfını kullanarak bir MVC görünümünden PDF'ye nasıl dönüştürüleceğini gösteren tam bir örneği burada bulabilirsiniz:
using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GeneratePDF()
{
// Create a simple invoice HTML
string invoiceHtml = @"
<h1>Invoice #1001</h1>
<p>Date: " + DateTime.Hayırw.ToString("MM/dd/yyyy") + @"</p>
<table border='1'>
<tr><th>Item</th><th>Price</th></tr>
<tr><td>Product A</td><td>$99.99</td></tr>
<tr><td>Product B</td><td>$149.99</td></tr>
</table>
<p><strong>Total: $249.98</strong></p>";
// Create PDF document using iTextSharp
using var stream = new MemoryStream();
var document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(document, stream);
document.Open();
using (var srHtml = new StringReader(invoiceHtml))
{
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
}
document.Close();
// Return the PDF file
return new FileContentResult(stream.ToArray(), "application/pdf")
{
FileDownloadName = "invoice.pdf"
};
}
}
using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GeneratePDF()
{
// Create a simple invoice HTML
string invoiceHtml = @"
<h1>Invoice #1001</h1>
<p>Date: " + DateTime.Hayırw.ToString("MM/dd/yyyy") + @"</p>
<table border='1'>
<tr><th>Item</th><th>Price</th></tr>
<tr><td>Product A</td><td>$99.99</td></tr>
<tr><td>Product B</td><td>$149.99</td></tr>
</table>
<p><strong>Total: $249.98</strong></p>";
// Create PDF document using iTextSharp
using var stream = new MemoryStream();
var document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(document, stream);
document.Open();
using (var srHtml = new StringReader(invoiceHtml))
{
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
}
document.Close();
// Return the PDF file
return new FileContentResult(stream.ToArray(), "application/pdf")
{
FileDownloadName = "invoice.pdf"
};
}
}
Imports iTextSharp.text
Imports iTextSharp.tool.xml
Imports iTextSharp.text.pdf
Imports System.IO
Public Class HomeController
Inherits Controller
Public Function Index() As ActionResult
Return View()
End Function
Public Function GeneratePDF() As ActionResult
' Create a simple invoice HTML
Dim invoiceHtml As String = "
<h1>Invoice #1001</h1>
<p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
<table border='1'>
<tr><th>Item</th><th>Price</th></tr>
<tr><td>Product A</td><td>$99.99</td></tr>
<tr><td>Product B</td><td>$149.99</td></tr>
</table>
<p><strong>Total: $249.98</strong></p>"
' Create PDF document using iTextSharp
Using stream As New MemoryStream()
Dim document As New Document(PageSize.A4)
Dim writer As PdfWriter = PdfWriter.GetInstance(document, stream)
document.Open()
Using srHtml As New StringReader(invoiceHtml)
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml)
End Using
document.Close()
' Return the PDF file
Return New FileContentResult(stream.ToArray(), "application/pdf") With {
.FileDownloadName = "invoice.pdf"
}
End Using
End Function
End Class
Bu örnek, HTML içeriğinden temel bir PDF belgesi oluşturur. XMLWorkerHelper sınıfı HTML stringini işler ve nesne modeli kullanarak PDF belgesine öğeler ekler. PdfWriter gerçek PDF oluşturma işlemini yürütürken, Document sayfa yapısını yönetir.
Çıktı

iText'in Temel Sınırlamaları Nelerdir?
XMLWorkerHelper sınıfı temel HTML etiketleri ve satır içi CSS'i destekler. Modern CSS3 özellikleri, flexbox düzenleri ve grid sistemleri işlenemez. JavaScript'e bağımlı içerikler tamamen kaybolur. Degrade, gölgeler ve dönüşümler gibi karmaşık tarzlar yok sayılır. Hatta standart Bootstrap sınıfları bile uygulanamaz, bu da özenle tasarlanmış görünümlerinizin sade ve profesyonel olmayan görünmesine neden olur.
Birçok geliştirici bu sınırlamaları Stack Overflow'da bildirmiştir, bu da iText ile MVC görünümlerini PDF'ye dönüştürmeye çalışırken hayal kırıklığına yol açmıştır.
Belki daha endişe verici olan iText'in lisanslama modelidir. Kütüphane, ücretsiz sürümünü kullandığınızda tüm uygulamanızı kaynak kodu halinde açmanızı gerektiren AGPL lisansını kullanır. Ticari lisanslar yılda birkaç bin dolardan başlar ve birçok işletme için oldukça maliyetlidir. Bu lisans kısıtlaması, birçok geliştiriciyi ticaret geliştirme ihtiyaçlarıyla daha iyi uyumlu alternatifler aramaya itti. Microsoft'un .NET belgelendirmesinde tarafından tartışıldığı gibi, uygun lisanslara sahip kütüphaneleri seçmek ticari projeler için kritiktir.

Modern Bir Kütüphane ile MVC Görünümlerini PDF'e Nasıl Dönüştürürsünüz?
.NET, ASP.NET Core MVC'de PDF oluşturma konusunda modern bir yaklaşımı temsil eder. Chromium render motoru üzerine inşa edilen .NET, HTML'yi Google Chrome'da göründüğü gibi PDF'ye dönüştürerek tüm stil, JavaScript çalıştırma ve duyarlı tasarım öğelerini korur.
IronPDF Nasıl Kurulur?
IronPDF'yi projenize NuGet Paket Yöneticisi Konsolu aracılığıyla ekleyin:
Install-Package IronPdf

Modern IronPDF Uygulaması
Yukarıda oluşturulan aynı fatura, modern CSS ve tam HTML5 render ile IronPDF'nin ChromePdfRenderer'ını kullanarak şimdi oluşturuluyor:
using IronPdf;
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GenerateModernPDF()
{
// Create a styled invoice HTML with modern CSS
string invoiceHtml = @"
<style>
body { font-family: 'Segoe UI', Arial; padding: 40px; }
.invoice-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
border-radius: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
th {
background-color: #f3f4f6;
padding: 12px;
text-align: left;
}
td {
padding: 12px;
border-bottom: 1px solid #e5e7eb;
}
.total {
font-size: 24px;
color: #10b981;
text-align: right;
margin-top: 20px;
}
</style>
<div class='invoice-header'>
<h1>Invoice #1001</h1>
<p>Date: " + DateTime.Hayırw.ToString("MMMM dd, yyyy") + @"</p>
</div>
<table>
<tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
<tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
</table>
<div class='total'>Total: $249.98</div>
<p>Page numbers and additional content can be added to each page.</p>";
// Use Chromium engine for rendering
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);
// Set content disposition for download
Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");
// Return the PDF file with binary data
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GenerateModernPDF()
{
// Create a styled invoice HTML with modern CSS
string invoiceHtml = @"
<style>
body { font-family: 'Segoe UI', Arial; padding: 40px; }
.invoice-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
border-radius: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
th {
background-color: #f3f4f6;
padding: 12px;
text-align: left;
}
td {
padding: 12px;
border-bottom: 1px solid #e5e7eb;
}
.total {
font-size: 24px;
color: #10b981;
text-align: right;
margin-top: 20px;
}
</style>
<div class='invoice-header'>
<h1>Invoice #1001</h1>
<p>Date: " + DateTime.Hayırw.ToString("MMMM dd, yyyy") + @"</p>
</div>
<table>
<tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
<tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
</table>
<div class='total'>Total: $249.98</div>
<p>Page numbers and additional content can be added to each page.</p>";
// Use Chromium engine for rendering
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);
// Set content disposition for download
Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");
// Return the PDF file with binary data
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Public Class HomeController
Inherits Controller
Public Function Index() As ActionResult
Return View()
End Function
Public Function GenerateModernPDF() As ActionResult
' Create a styled invoice HTML with modern CSS
Dim invoiceHtml As String = "
<style>
body { font-family: 'Segoe UI', Arial; padding: 40px; }
.invoice-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
border-radius: 10px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
th {
background-color: #f3f4f6;
padding: 12px;
text-align: left;
}
td {
padding: 12px;
border-bottom: 1px solid #e5e7eb;
}
.total {
font-size: 24px;
color: #10b981;
text-align: right;
margin-top: 20px;
}
</style>
<div class='invoice-header'>
<h1>Invoice #1001</h1>
<p>Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
</div>
<table>
<tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
<tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
<tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
</table>
<div class='total'>Total: $249.98</div>
<p>Page numbers and additional content can be added to each page.</p>"
' Use Chromium engine for rendering
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(invoiceHtml)
' Set content disposition for download
Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf")
' Return the PDF file with binary data
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
ChromePdfRenderer HTML'yi Chrome'un göstereceği gibi tam olarak dönüştürür. Degrade arka planlar, modern yazı tipleri ve karmaşık stiller tamamen doğru şekilde işlenir. Renderleyici, iText'in işleyemediği karmaşık CSS özelliklerini ele alır, flexbox, ızgara düzenleri ve sırasız kare olarak render edilen CSS dönüştürmeler dahil. RenderHtmlAsPdf metodu MVC'de HTML'den PDF'ye dönüştürmeyi basitleştirir.
Çıktı

Ücretsiz denemenizi başlatın ve modern PDF oluşturmayı Chrome destekli render motoru ile deneyimleyin.

Bu İki PDF Kütüphanesi Arasında Nasıl Seçim Yaparsınız?
iText ve .NET'yi .NET MVC görünüm dönüştürmesi için karşılaştırırken, birçok faktör bu kütüphaneleri render kalitesi, geliştirici deneyimi ve lisanslama açısından açıkça ayırır.
Özellik Karşılaştırması
| Özellik | iText | IronPDF |
|---|---|---|
| HTML5 Desteği | Sınırlı | Tam |
| CSS3 Render | Sadece temel | Tamamlatılmış |
| JavaScript Yürütme | Hayır | Evet |
| Flexbox/Grid Desteği | Hayır | Evet |
| Bootstrap Uyumluluğu | Kısmi | Tam |
| Web Yazı Tipi Desteği | Sınırlı | Tamamlatılmış |
| SVG Grafikleri | Hayır | Evet |
| Duyarlı Tasarım | Hayır | Evet |
| API Karmaşıklığı | Düşük seviye | Yüksek seviye |
Lisans Düşünceleri
Bu kütüphaneler arasındaki lisans farkı, ticari geliştirme üzerinde önemli bir etkiye sahiptir. iText'in AGPL lisansı birçok işin kabul edemeyeceği yasal yükümlülükler yaratır. Ücretsiz sürümü kullanmanın tüm uygulamanızı, özel iş mantığı dahil, açık kaynak kodlu hale getirmenizi gerektirir. Bu kısıtlama, pahalı bir ticari lisans satın almazsanız iText'i çoğu ticari proje için uygun hale getirmez.
IronPDF, kolay anlaşılan ticari lisanslama sunar ve tek bir geliştirici için $999'den başlar. Lisans, bir yıllık güncellemeler ve destek içerir ve uygulamanızı açık kaynak kodlu hale getirmek zorunda kalmadan geçerlidir. Bu şeffaf fiyatlandırma modeli, C#'ta MVC görünümlerini PDF'e dönüştürmek için işletmelerin tüm boyutlarına profesyonel PDF oluşturmayı erişilebilir kılar.

Çıkış Kalitesi Analizi
Render kalitesi farkı, çıktılar karşılaştırıldığında hemen fark edilir. iText, belgelere 2000'lerin başından kalma gibi basit PDF'ler üretir. Tablolar uygun bir şekilde stilize edilmez, yazı tipleri sistem standartlarına göre varsayılan olarak ayarlanır ve modern tasarım öğeleri tamamen kaybolur. Sonuç olarak, PDF'ler profesyonel görünmez ve uygulamanızın marka kimliğini gerçekleştirmeyi başaramaz.
IronPDF, web tasarımınızı piksel mükemmelliğinde bir şekilde eş olan PDF'ler üretir. Degrade arka planlar doğru şekilde işlenir, özel yazı tipleri doğru bir şekilde görüntülenir ve karmaşık düzenler yapılarını korur. Chromium motoru, PDF'lerinizin web görünümüyle aynı olmasını garantiler, tüm oluşturulan belgelerde marka kimliği ve profesyonel görünümü korur.
PDF Renderer Neyin İleri Özelliklerini Sunar?
Temel HTML dönüşümünün ötesinde, IronPDF kurumsal düzeyde özellikler sunarak profesyonel PDF oluşturmayı hızlandırır. tam API belgeleri, MVC görünümlerini PDF'e dönüştürmek için kütüphanenin geniş yeteneklerini gösterir.
Başlıklar ve Altbilgiler
Dinamik içerik ile profesyonel başlıklar ve alt bilgiler ekleyin:
var renderer = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions
{
HtmlHeader = new HtmlHeaderFooter
{
MaxHeight = 25,
HtmlFragment = "<div style='text-align: center'>Company Name</div>"
},
HtmlFooter = new HtmlHeaderFooter
{
MaxHeight = 20,
HtmlFragment = "<center>Page {page} of {total-pages}</center>"
}
}
};
var renderer = new ChromePdfRenderer
{
RenderingOptions = new ChromePdfRenderOptions
{
HtmlHeader = new HtmlHeaderFooter
{
MaxHeight = 25,
HtmlFragment = "<div style='text-align: center'>Company Name</div>"
},
HtmlFooter = new HtmlHeaderFooter
{
MaxHeight = 20,
HtmlFragment = "<center>Page {page} of {total-pages}</center>"
}
}
};
Dim renderer = New ChromePdfRenderer With {
.RenderingOptions = New ChromePdfRenderOptions With {
.HtmlHeader = New HtmlHeaderFooter With {
.MaxHeight = 25,
.HtmlFragment = "<div style='text-align: center'>Company Name</div>"
},
.HtmlFooter = New HtmlHeaderFooter With {
.MaxHeight = 20,
.HtmlFragment = "<center>Page {page} of {total-pages}</center>"
}
}
}
Bu yapılandırma, her sayfaya tutarlı marka kimliği ekler. {page} ve {total-pages} yer tutucuları otomatik olarak doğru değerlerle doldurulur, böylece belge boyunca doğru sayfa numaralandırılması sağlanır. Daha fazla yapılandırma seçeneği için başlıklar ve alt bilgiler kılavuzuna bakın.
Güvenlik ve Şifreleme
Gizlilik belgelerinizi IronPDF'nin güvenlik özelliklerini kullanarak şifreler ve izinlerle koruyun:
var pdf = renderer.RenderHtmlAsPdf(html);
// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.TamPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var pdf = renderer.RenderHtmlAsPdf(html);
// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.TamPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Add password protection
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"
' Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.TamPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False
Bu güvenlik ayarları, yetkisiz erişimi önler ve alıcıların PDF'leriniz ile nasıl etkileşimde bulunabileceğini kontrol eder, MVC görünümlerini PDF'e dönüştürdüğünüzde. Tam sahip kontrolünü koruyarak yazdırmayı, kopyalamayı ve düzenlemeyi kısıtlayabilirsiniz. Daha fazla bilgi için PDF güvenlik belgelerini inceleyin.
Çıktı

Form Alanı İşleme
IronPDF, HTML formlarını ekstra araçlara gerek kalmadan etkileşimli PDF formlarına dönüştürür:
string formHtml = @"
<form>
<label>Name:</label>
<input type='checkbox'> Accept Terms
<select name='country'>
<option>USA</option>
<option>Canada</option>
</select>
</form>";
var pdf = renderer.RenderHtmlAsPdf(formHtml);
string formHtml = @"
<form>
<label>Name:</label>
<input type='checkbox'> Accept Terms
<select name='country'>
<option>USA</option>
<option>Canada</option>
</select>
</form>";
var pdf = renderer.RenderHtmlAsPdf(formHtml);
Imports System
Dim formHtml As String = "
<form>
<label>Name:</label>
<input type='checkbox'> Accept Terms
<select name='country'>
<option>USA</option>
<option>Canada</option>
</select>
</form>"
Dim pdf = renderer.RenderHtmlAsPdf(formHtml)
Ortaya çıkan PDF, form etkileşimini korur ve kullanıcıların PDF okuyucularında doğrudan alanları doldurmasına olanak tanır. Bu özellik, belge iş akışınızı basitleştirerek form oluşturma araçlarına olan ihtiyacı ortadan kaldırır. form belgelerini daha fazla seçenek için inceleyin.
Çıktı

Yaygın PDF Oluşturma Sorunlarını Nasıl Çözümlersiniz?
Modern kütüphanelerle bile, belirli zorluklar optimal PDF çıktısı sağlamak için belirli çözümler gerektirir. Geliştiricilerin MVC görünümlerini PDF'ye dönüştürürken karşılaştıkları en sık sorunları ele alan aşağıdaki kalıplar.
CSS Oluşturma Optimizasyonu
Karmaşık CSS ile en iyi sonuçları elde etmek için HTML dosyalarını PDF formatına dönüştürdüğünüzde yazdırma ortamı sorgularını kullanın:
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Bu ayar, ekran gösterimi yerine PDF çıktısı için düzenleri optimize eden, baskıya özgü CSS kurallarını uygular. Bunu, baskı için optimize edilmiş stil sayfalarıyla birleştirmek, sayfa sonları, kenar boşlukları ve tipografi üzerinde size hassas kontrol sağlar. CSS ortam türü kılavuzu ek işleme seçeneklerini açıklar.
JavaScript Çalıştırma Zamanlaması
Dinamik içeriği dönüştürürken, PDF'yi yakalamadan önce JavaScript yürütümünün tamamlanmasını bekleyin. Bu, tüm AJAX çağrılarının ve DOM manipülasyonlarının tamamlanmasını sağlar:
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
Bu yapılandırma, PDF oluşturma başlamadan önce AJAX çağrılarının tamamlanmasını ve DOM manipülasyonlarının bitmesini sağlar, böylece MVC görünümünüzün tamamen oluşturulmuş durumunu yakalar. Grafik kütüphaneleri ve diğer async-ağır içerikler için, gecikme değerini artırmanız gerekebilir.
Çıktı

Yazı Tipi Gömme ve Belge Biçimlendirme
Özel yazı tiplerinin doğru bir şekilde görünmesini sağlamak için bunları base64 kodlu veri URI'leri kullanarak doğrudan HTML'nize gömün:
@font-face {
font-family: 'CustomFont';
src: url(data:font/woff2;base64,[base64-encoded-font]) format('woff2');
}
Yazı tiplerini doğrudan HTML'ye gömmek, oluşturulan PDF belgelerinde eksik yazı tipi sorunlarını ortadan kaldırarak tüm ortamlarda tutarlı render sağlanmasını garanti eder. Bu yaklaşım, bir URL tabanlı render ile RenderUrlAsPdf veya bir string tabanlı render ile RenderHtmlAsPdf kullanıldığında eşit derecede iyi çalışır.
Sayfa boyutu, yönlendirme ve kenar boşluğu kontrolü dahil ek yapılandırma desenleri için IronPDF rendere etme seçenekleri belgelerine bakın. Genel MVC entegrasyon modellerini gösteren GitHub üzerindeki örnek projeleri de inceleyebilirsiniz.
Sonraki Adımlarınız Neler?
iText, .NET topluluğuna birçok yıl boyunca iyi hizmet etti, ancak modern web geliştirme, daha yetenekli PDF üretimi gerektiriyor. .NET'in Chrome tabanlı işleme motoru, günümüzün ASP.NET MVC uygulamalarının ihtiyaç duyduğu piksel bazında doğruluk ve tam CSS3 desteği sağlar. Yüksek seviyeli API'si, kapsamlı dokümantasyonu ve işletme dostu lisanslaması ile ASP.NET Core MVC projeleri için pratik bir seçimdir.
Uygulamanızda PDF oluşturma konusunda daha ileri gitmek için:
- Ücretsiz deneme sürümünü indir ve bu kılavuzdaki kod örneklerini kendi projenizde çalıştırın
- IronPDF API referansını okuyarak tüm özellik setini keşfedin
- Filigranlar, dijital imzalar ve PDF birleştirme için nasıl yapılır kılavuzlarını kontrol edin
- lisanslama seçeneklerini gözden geçirin, ekibiniz için en uygun planı bulun
- PDF manipülasyonu hakkında daha fazla eğitim yazısı için .NET blogunu keşfedin
Sıkça Sorulan Sorular
MVC görünümlerini PDF'ye dönüştürmenin amacı nedir?
MVC görünümlerini PDF'ye dönüştürmek, geliştiricilerin web uygulamalarından doğrudan yazdırılabilir ve kolayca paylaşılabilir belgeler oluşturmasına olanak tanır, orijinal görünümün düzeni ve tasarımı korunur.
IronPDF nedir?
IronPDF, .NET uygulamaları içinde PDF belgeleri oluşturma, düzenleme ve dönüştürme işlemlerini kolaylaştıran bir .NET kütüphanesidir, PDF işlevselliğini entegre etmenin kolay bir yolunu sunar.
IronPDF, MVC görünümlerini PDF'ye dönüştürmeyi nasıl basitleştirir?
IronPDF, geliştiricilerin HTML ve MVC görünümlerini doğrudan PDF formatına dönüştürmesine olanak tanıyarak, geniş kapsamlı kodlama gereksinimleri olmadan orijinal düzen ve tasarımı koruyarak süreci basitleştirir.
MVC PDF dönüşümü için iTextSharp'ın sınırlamaları nelerdir?
iTextSharp'ın XMLWorkerHelper'ı modern CSS3, flexbox, grid düzenleri, JavaScript yürütümü veya Bootstrap stilini desteklemez. AGPL lisansı ayrıca ücretsiz sürümünü kullanıyorsanız uygulamanızı açık kaynak yapmak zorunda kılar.
IronPDF, PDF oluşturmadan önce JavaScript'i işleyebilir mi?
Evet, IronPDF, render sırasında JavaScript yürütümünü destekler. Dinamik içeriğin tam olarak yüklendiğinden emin olmak için EnableJavaScript'i etkinleştirebilir ve render gecikmesini WaitFor.RenderDelay ile kontrol edebilirsiniz.
IronPDF kullanmanın sistem gereksinimleri nelerdir?
IronPDF .NET 6, .NET 7, .NET 8, .NET Core ve .NET Framework 4.6.2+ destekler. Windows, Linux ve macOS üzerinde çalışır.
MVC görünümlerini dönüştürürken PDF çıktısını özelleştirmek mümkün mü?
Evet, IronPDF'i kullanarak geliştiriciler PDF çıktısını sayfa boyutu, yön, kenar boşlukları, başlıklar, altbilgiler, güvenlik ayarları ve CSS medya türü gibi ayarları ayarlayarak özelleştirebilir.
IronPDF, PDF dönüşümü için CSS stilini destekliyor mu?
IronPDF, Chromium render motoru üzerinden tam CSS3 stilini destekler ve dönüştürülen PDF'nin orijinal HTML veya MVC görünümünün görsel görünümünü, yazı tipleri, renkler, gradyanlar ve düzen dâhil olmak üzere korumasını sağlar.
IronPDF'in performansı iTextSharp'a göre nasıl?
IronPDF, rendere için Chromium motorunu kullanır, bu başlangıçta ek yük getirebilir ancak çok daha üstün render doğruluğu sunar. Yüksek hacimli senaryolar için IronPDF, eşzamanlı olmayan rendering'i destekler ve thread-safe renderer örnekleri ile optimize edilebilir.
IronPDF belgelerini nerede bulabilirim?
IronPDF için tam belgeler https://ironpdf.com/how-to/adresinde bulunmaktadır, geliştiricilerin uygulamalarında yardımcı olmak için kılavuzlar, eğitimler ve API referansları içerir.

