NReco.PdfGenerator vs IronPDF: Teknik Karşılaştırma Rehberi
NReco.PdfGenerator Genel Bakış
NReco.PdfGenerator, HTML belgelerini PDF'lere dönüştüren ve wkhtmltopdf komut satırı aracını kullanan bir C# kütüphanesidir. Wkhtmltopdf'u oluşturmada çağıran HtmlToPdfConverter sınıfı aracılığıyla basit bir API sunar.
wkhtmltopdf aracı, rendering motoru olarak 2012 civarından kalma bir versiyon olan WebKit Qt'yi kullanır. Geniş çapta kullanılmasına rağmen, wkhtmltopdf'nin geliştirilmesi 2020'de durduruldu ve bu da onu güvenlik güncellemeleri ve yeni özelliklerden yoksun bıraktı. Bu durum, güncel CSS ve JavaScript ihtiyaçları olan modern uygulamalar geliştiren ekipler için zorluklar oluşturur.
NReco.PdfGenerator'un ücretsiz sürümü, üretilen PDF'lerde filigran içerir ve üretim kullanımı için ticari bir lisans gerektirir. Bu lisansların fiyatlandırmasını almak, satışla iletişime geçilmesini gerektirir ve satın alma süreçlerini karmaşıklaştırabilir.
IronPDF'ye Giriş
IronPDF, HTML, CSS ve JavaScript'i PDF belgelerine dönüştürmek için modern, Chromium tabanlı bir rendering motoru kullanan bir .NET kutuphanesidir. ChromePdfRenderer sınıfı, HTML'den PDF'ye dönüştürme için ana arayüz olarak hizmet eder ve RenderingOptions özelliği aracılığıyla geniş yapılandırma seçenekleri sunar.
wkhtmltopdf sarmalayıcılarının aksine, IronPDF'nin rendering motoru güvenlik ve uyumluluk için düzenli güncellemeler alır. Kutuphane kendine yeterlidir, farklı platformlarda harici ikilik bağımlılıkları yönetme ihtiyaçını ortadan kaldırır.
IronPDF, ekiplerin satın almadan önce yeteneklerini değerlendirmelerine izin vererek, tam işlevsellik (filigran yok) ile deneme süresi sunar. Ticari lisanslama, yayımlanmış, şeffaf fiyatlandırma kullanır.
Çizim Motorlarını Karşılaştırma
Bu kütüphaneler arasındaki ana fark, güvenlik ve CSS uyumluluğunu etkileyen rendering motorlarında yatar.
| Bağlam | NReco.PdfGenerator | IronPDF |
|---|---|---|
| Render Motoru | WebKit Qt (2012) | Chromium (güncel) |
| Güvenlik | 20+ CVEs, terk edilmiş | Aktif güvenlik güncellemeleri |
| CSS Desteği | CSS2.1, sınırlı CSS3 | Tam CSS3, Grid, Flexbox |
| JavaScript | Temel ES5 | Tam ES6+ |
| Bagimliliklar | Harici wkhtmltopdf ikili dosyası | Kendisi yeterli |
| Async Destegi | Yalnızca eşzamanlı | Tam async/await |
| Web Yazı Tipleri | Sınırlı | Tam Google Yazı Tipleri, @font-face |
| Ücretsiz Deneme | Filigranlı | Tam işlevsellik |
| Fiyatlandırma Şeffaflığı | Belirsiz, satışla iletişime geçin | Yayınlanmış fiyatlandırma |
NReco.PdfGenerator, wkhtmltopdf'den gelen tüm güvenlik açıklarını devralır, sunucu tarafı isteği sahteciliği, yerel dosya okuma güvenlik açıkları ve potansiyel uzaktan kod yürütme için belgelenmiş CVE'ler dahil. 2020'den beri wkhtmltopdf terk edildiği için bu sorunlar için hiçbir yama mevcut değildir.
IronPDF'nin Chromium motoru, Grid ve Flexbox yerleşim düzenleri, CSS değişkenleri ve özel özellikler gibi modern CSS özelliklerini etkinleştirerek güncel web standartları desteği sağlar. JavaScript yürütme, async/await kalıpları dahil olmak üzere ES6+ sözdizimini destekler.
Temel HTML'den PDF'ye Dönüşüm
Her iki kütüphane de farklı API kalıplarıyla temel HTML-to-PDF dönüşümünü ele alır.
NReco.PdfGenerator yaklaşımı:
// NuGet: Install-Package NReco.PdfGenerator
using NReco.PdfGenerator;
using System.IO;
class Program
{
static void Main()
{
var htmlToPdf = new HtmlToPdfConverter();
var htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
File.WriteAllBytes("output.pdf", pdfBytes);
}
}// NuGet: Install-Package NReco.PdfGenerator
using NReco.PdfGenerator;
using System.IO;
class Program
{
static void Main()
{
var htmlToPdf = new HtmlToPdfConverter();
var htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
File.WriteAllBytes("output.pdf", pdfBytes);
}
}Imports NReco.PdfGenerator
Imports System.IO
Class Program
Shared Sub Main()
Dim htmlToPdf = New HtmlToPdfConverter()
Dim htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim pdfBytes = htmlToPdf.GeneratePdf(htmlContent)
File.WriteAllBytes("output.pdf", pdfBytes)
End Sub
End ClassIronPDF yaklasimi:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}Imports IronPdf
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
End Sub
End ClassHer iki kütüphane de temel dönüşümler için minimal kod gerektirir. NReco.PdfGenerator manuel dosya işlemleri gerektiren bir byte[] dizesi döndürürken,IronPDFSaveAs() gibi kullanışlı yöntemlerle bir PdfDocument nesnesi döndürür.IronPDFnesnesi ayrıca bayt dizisi erişimi için BinaryData ve akış tabanlı işlemler için Stream sunar.
HTML to PDF dönüştürme iş akışına aşina olan geliştiriciler için, IronPDF'nin API'si sezgisel gelecek ve temel dönüşümün ötesinde ek yetenekler sağlayacaktır.
URL'den PDF'ye Dönüşüm
Web sayfalarını PDF belgelerine dönüştürmek, metot isimlendirmesi ve dil bilgisi konularında API farklılıklarını ortaya çıkarır.
NReco.PdfGenerator URL dönüştürme:
// NuGet: Install-Package NReco.PdfGenerator
using NReco.PdfGenerator;
using System.IO;
class Program
{
static void Main()
{
var htmlToPdf = new HtmlToPdfConverter();
var pdfBytes = htmlToPdf.GeneratePdfFromFile("https://www.example.com", null);
File.WriteAllBytes("webpage.pdf", pdfBytes);
}
}// NuGet: Install-Package NReco.PdfGenerator
using NReco.PdfGenerator;
using System.IO;
class Program
{
static void Main()
{
var htmlToPdf = new HtmlToPdfConverter();
var pdfBytes = htmlToPdf.GeneratePdfFromFile("https://www.example.com", null);
File.WriteAllBytes("webpage.pdf", pdfBytes);
}
}Imports NReco.PdfGenerator
Imports System.IO
Class Program
Shared Sub Main()
Dim htmlToPdf As New HtmlToPdfConverter()
Dim pdfBytes As Byte() = htmlToPdf.GeneratePdfFromFile("https://www.example.com", Nothing)
File.WriteAllBytes("webpage.pdf", pdfBytes)
End Sub
End ClassIronPDF URL dönüştürme:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End ClassNReco.PdfGenerator, hem dosya yolları hem de URL'ler için GeneratePdfFromFile() kullanır, bu da anlamsal olarak kafa karıştırıcı olabilir. IronPDF, gerçekleştirilen işlemi açıkça belirten RenderUrlAsPdf adında özel bir metod sunar.
Özel Sayfa Boyutu ve Kenar Boşlukları
Profesyonel belgeler genellikle belirli sayfa boyutları ve kenar boşluğu yapılandırmaları gerektirir. Her iki kütüphane de bu özelleştirmeleri farklı yapılandırma kalıpları ile destekler.
NReco.PdfGenerator sayfa yapılandırması:
// NuGet: Install-Package NReco.PdfGenerator
using NReco.PdfGenerator;
using System.IO;
class Program
{
static void Main()
{
var htmlToPdf = new HtmlToPdfConverter();
htmlToPdf.PageWidth = 210;
htmlToPdf.PageHeight = 297;
htmlToPdf.Margins = new PageMargins { Top = 10, Bottom = 10, Left = 10, Right = 10 };
var htmlContent = "<html><body><h1>Custom Page Size</h1><p>A4 size document with margins.</p></body></html>";
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
File.WriteAllBytes("custom-size.pdf", pdfBytes);
}
}// NuGet: Install-Package NReco.PdfGenerator
using NReco.PdfGenerator;
using System.IO;
class Program
{
static void Main()
{
var htmlToPdf = new HtmlToPdfConverter();
htmlToPdf.PageWidth = 210;
htmlToPdf.PageHeight = 297;
htmlToPdf.Margins = new PageMargins { Top = 10, Bottom = 10, Left = 10, Right = 10 };
var htmlContent = "<html><body><h1>Custom Page Size</h1><p>A4 size document with margins.</p></body></html>";
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
File.WriteAllBytes("custom-size.pdf", pdfBytes);
}
}Imports NReco.PdfGenerator
Imports System.IO
Class Program
Shared Sub Main()
Dim htmlToPdf = New HtmlToPdfConverter()
htmlToPdf.PageWidth = 210
htmlToPdf.PageHeight = 297
htmlToPdf.Margins = New PageMargins With {.Top = 10, .Bottom = 10, .Left = 10, .Right = 10}
Dim htmlContent = "<html><body><h1>Custom Page Size</h1><p>A4 size document with margins.</p></body></html>"
Dim pdfBytes = htmlToPdf.GeneratePdf(htmlContent)
File.WriteAllBytes("custom-size.pdf", pdfBytes)
End Sub
End ClassIronPDF sayfa yapılandırması:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
var htmlContent = "<html><body><h1>Custom Page Size</h1><p>A4 size document with margins.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("custom-size.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
var htmlContent = "<html><body><h1>Custom Page Size</h1><p>A4 size document with margins.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("custom-size.pdf");
}
}Imports IronPdf
Imports IronPdf.Rendering
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.MarginLeft = 10
renderer.RenderingOptions.MarginRight = 10
Dim htmlContent = "<html><body><h1>Custom Page Size</h1><p>A4 size document with margins.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("custom-size.pdf")
End Sub
End ClassNReco.PdfGenerator, sayfa boyutlarını milimetre cinsinden belirtmeyi gerektirir (A4 için 210×297) ve bir PageMargins nesnesi kullanır. IronPDF, standart boyutlar için PdfPaperSize enumunu kullanır ve RenderingOptions aracılığıyla bireysel kenar boşluğu özellikleri sunar. RenderingOptions sınıfı, tüm sayfa yapılandırmasını merkezleştirir, bu da ayarları IDE otomatik tamamlama ile keşfedilebilir hale getirir.
API Haritalama Referansı
NReco.PdfGenerator'dan IronPDF'ye geçişi düşünen ekipler için API haritalamalarını anlamak, çaba tahminine ve geçiş planlamasına yardımcı olur.
Çekirdek Yöntem Haritalamaları
| NReco.PdfGenerator | IronPDF |
|---|---|
new HtmlToPdfConverter() | new ChromePdfRenderer() |
GeneratePdf(html) | RenderHtmlAsPdf(html) |
GeneratePdfFromFile(url, output) | RenderUrlAsPdf(url) |
GeneratePdfFromFile(path, output) | RenderHtmlFileAsPdf(path) |
| (desteklenmiyor) | RenderHtmlAsPdfAsync(html) |
Yapılandırma Özellik Haritalamaları
| NReco.PdfGenerator | IronPDF |
|---|---|
Orientation = PageOrientation.Landscape | RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape |
Size = PageSize.A4 | RenderingOptions.PaperSize = PdfPaperSize.A4 |
Margins.Top = 10 | RenderingOptions.MarginTop = 10 |
Zoom = 0.9f | RenderingOptions.Zoom = 90 |
PageHeaderHtml = "..." | RenderingOptions.HtmlHeader |
PageFooterHtml = "..." | RenderingOptions.HtmlFooter |
Yer Tutucu Sözdizimi Farklılıkları
Üst bilgiler ve alt bilgiler genellikle sayfa numaraları gibi dinamik içerikler içerir. Yer tutucu sözdizimi kütüphaneler arasında farklılık gösterir:
| NReco.PdfGenerator | IronPDF | Amac |
|---|---|---|
[page] | {page} | Geçerli sayfa numarası |
[topage] | {total-pages} | Toplam sayfa sayısı |
[date] | {date} | Güncel tarih |
[time] | {time} | Güncel zaman |
[title] | {html-title} | Belge başlığı |
[webpage] | {url} | Kaynak URL |
NReco.PdfGenerator'dan geçiş yapan ekipler, tüm üst bilgi ve alt bilgi şablonlarını yeni yer tutucu sözdizimi ile güncellemelidir.
Yakınlaştırma Değeri Dönüşümü
NReco.PdfGenerator yakınlaştırma için float değerler (0.0-2.0) kullanırken,IronPDFyüzde değerleri kullanır:
// NReco: Zoom = 0.75f means 75%
// IronPDF: Zoom = 75 means 75%
int ironPdfZoom = (int)(nrecoZoom * 100);// NReco: Zoom = 0.75f means 75%
// IronPDF: Zoom = 75 means 75%
int ironPdfZoom = (int)(nrecoZoom * 100);' NReco: Zoom = 0.75F means 75%
' IronPDF: Zoom = 75 means 75%
Dim ironPdfZoom As Integer = CInt(nrecoZoom * 100)Asenkron Destek Karşılaştırması
Modern web uygulamaları, işlemleri engellemeyen asenkron operasyonlardan faydalanır. Bu, eşzamanlı isteklere cevap veren ASP.NET Core uygulamalarında özellikle önemlidir.
NReco.PdfGenerator yalnızca eşzamanlı işlemler sağlar, bu da PDF oluşturma sırasında web sunucu iş parçacıklarını engelleyebilir:
// NReco.PdfGenerator - synchronous only
var pdfBytes = converter.GeneratePdf(html); // Blocks thread// NReco.PdfGenerator - synchronous only
var pdfBytes = converter.GeneratePdf(html); // Blocks threadIronPDF, tam async/await kalıplarını destekler:
//IronPDF- async support
var pdf = await renderer.RenderHtmlAsPdfAsync(html); // Non-blocking
await pdf.SaveAsAsync("output.pdf");//IronPDF- async support
var pdf = await renderer.RenderHtmlAsPdfAsync(html); // Non-blocking
await pdf.SaveAsAsync("output.pdf");Imports System.Threading.Tasks
' IronPDF - async support
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html) ' Non-blocking
Await pdf.SaveAsAsync("output.pdf")HTTP isteklerine yanıt olarak PDF oluşturan uygulamalar için, IronPDF'nin asenkron desteği iş parçacıkları rendelenme sırasında serbest bırakarak ölçeklendirilebilirliği artırır.
Bağımlılık ve Dağıtım Farklılıkları
NReco.PdfGenerator, wkhtmltopdf ikili dosyasının sistemde mevcut olmasını gerektirir. Bu da dağıtım zorlukları yaratır:
- Platforma özgü ikili dosyaların yönetilmesi gerekir (Windows .exe, Linux .so, macOS .dylib)
- Docker görüntüleri wkhtmltopdf yüklemesi gerektirir
- CI/CD hatları ikili sağlama adımları gerektirir
- Güvenlik tarayıcıları bilinen CVE'leri işaretler
IronPDF, bir NuGet paketi olarak kendine yeterlidir:
# IronPDF installation - complete
dotnet add package IronPdf
# NReco.PdfGenerator installation - plus binary management
dotnet add package NReco.PdfGenerator
# Plus: install wkhtmltopdf per platform# IronPDF installation - complete
dotnet add package IronPdf
# NReco.PdfGenerator installation - plus binary management
dotnet add package NReco.PdfGenerator
# Plus: install wkhtmltopdf per platformNReco.PdfGenerator'dan geçiş yapan ekipler wkhtmltopdf ikili dosyalarını kaldırabilir ve dağıtım süreçlerini basitleştirebilir.
Ekiplerin NReco.PdfGenerator'dan IronPDF'ye Geçişi Düşündüğü Zaman
Birçok faktör, ekipleri IronPDF'yi NReco.PdfGenerator'a alternatif olarak değerlendirmeye yönlendiriyor:
Güvenlik Uyumluluğu: Güvenlik gereksinimleri olan organizasyonlar, CVE'leri tespit eden güvenlik tarayıcılarıyla zorluklar yaşar. Wkhtmltopdf terk edildiği için, bu güvenlik açıkları NReco.PdfGenerator içinde çözüm yolu bulunamamaktadır. IronPDF'nin aktif olarak sürdürülen Chromium motoru güvenlik güncellemeleri alır.
Modern CSS Gereksinimleri: CSS Grid, Flexbox, CSS değişkenleri veya diğer modern CSS özelliklerine ihtiyaç duyan projeler, wkhtmltopdf'nin 2012 tarihli WebKit motorunu kullanamaz. Web tasarımcıları sık sık NReco.PdfGenerator'da yanlış veya hiç render edilmez düzenleme oluştururlar.
JavaScript Uyumluluğu: JavaScript ile oluşturulan içerikler (grafikler, dinamik tablolar, hesaplanmış değerler) içeren PDF üreten uygulamalar, modern JavaScript desteğine ihtiyaç duyar. Wkhtmltopdf'nin ES5 sınırlaması, modern JavaScript kütüphanelerinin kullanımını önler.
Asenkron Uygulama Mimarisi: ASP.NET Core uygulamaları, iş parçacığı verimliliğini korumak için asenkron PDF üretiminden faydalanır. NReco.PdfGenerator'ın yalnızca eşzamanlı API'si, ölçeklenebilirlik darboğazları oluşturabilir.
Dağıtım Basitleştirme: Geliştirme, hazırlık ve üretim ortamlarında platforma özgü wkhtmltopdf ikili dosyalarının yönetimi, operasyonel karmaşıklık arttırır. Ekipler, CI/CD hatlarını basitleştiren kendine yeterli çözümleri arar.
Fiyatlandırma Şeffaflığı: Bütçe planlaması, öngörülebilir maliyetler gerektirir. NReco.PdfGenerator'ın belirsiz fiyatlandırması (satışla iletişime geçin) satın alma sürecini karmaşıklaştırırken, IronPDF'nin yayımlanmış fiyatlandırması doğru bütçe planlamasına olanak sağlar.
Kurulum Karşılaştırması
NReco.PdfGenerator kurulumu:
Install-Package NReco.PdfGeneratorInstall-Package NReco.PdfGeneratorArtı, platforma özgü wkhtmltopdf ikili dosyalarının kurulumu ve yönetimi.
IronPDF kurulumu:
Install-Package IronPdfInstall-Package IronPdfIronPDF, uygulama başlatildiginda lisans anahtarı konfigürasyonu gerektirir:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"Her iki kütüphane de .NET Framework 4.6.2+ ve .NET Core/.NET 5+'ı destekler, bu da onları .NET 10 ve C# 14 hedefli modern .NET geliştirme ile uyumlu kılar.
Performans Dikkatleri
IronPDF'nin Chromium motoru, ilk kullanımda bir başlangıç maliyeti içerir (Chromium başlatması için yaklaşık 1.5 saniye). Sonraki render'lar önemli ölçüde daha hızlıdır. Gecikmelere duyarlı acilis gereksinimleri olan uygulamalar icin render'in uygulama başlatilmasinda isinmasi, bu gecikmenin kullaniciya yonelik işlemleri etkilemesini onler:
// Warm up at startup
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");// Warm up at startup
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf("<html></html>")NReco.PdfGenerator, wkhtmltopdf sürecini başlatırken başlatma üst yükü de taşır. Ayrıca harici işlem yönetiminden gelen sürekli bellek yükü vardır.
Karar Verme
NReco.PdfGenerator veIronPDFarasındaki seçim, özel gereksinimlerinize bağlıdır:
NReco.PdfGenerator'ı düşünün: Var olan wkhtmltopdf tabanlı iş akışlarınızın düzgün çalıştığı, güvenlik tarayıcı bulgularının ortamınızda kabul edilebilir olduğu, modern CSS veya JavaScript özelliklerine ihtiyaç duymadığınız ve platforma özgü ikili dağıtımı yönetebileceğiniz durumlarda.
IronPDF'yi düşünün: Güvenlik uyumluluğunun wkhtmltopdf CVE'lerini ele almasını gerektirdiği, tasarımlarınızın Grid veya Flexbox gibi modern CSS özelliklerini kullandığı, web uygulamaları için async/await desteğine ihtiyaç duyduğunuz, harici ikili dosyaları kaldırarak dağıtımı basitleştirmeyi istediğiniz ya da şeffaf lisanslama ve fiyatlandırmayı tercih ettiğiniz durumlarda.
2025'te modern .NET uygulamaları geliştiren ve 2026'ya yönelik plan yapan ekipler için, IronPDF'nin aktif olarak sürdürülen Chromium motoru, mevcut ve gelecekteki web standartları uyumluluğu için bir temel sağlar.
IronPDFile Başlarken
PDF oluşturma ihtiyaçlarınız için IronPDF'u değerlendirmek için:
- IronPDF NuGet paketi'ni yükleyin:
Install-Package IronPdf - Temel dönüşüm kalıpları için HTML'den PDF'ye öğreticiyi inceleyin
- Web sayfasi yakalamasi icin URL'den PDF'ye donusumunu inceleyin
- Profesyonel belgeler icin basliklar ve altbilgiler duzenleyin
IronPDF tutorial'lari, yaygin senaryolar icin kapsamli örnekler sunar ve API referansi tüm siniflari ve yöntemleri belgeler.
Son Düşünceler
NReco.PdfGenerator ve IronPDF, PDF oluşturma teknolojisinin farklı dönemlerini temsil eder. NReco.PdfGenerator, wkhtmltopdf'nin 2012 WebKit motorunu sarar, tanıdık API'sını ve güvenlik açıkları ile sınırlamalarını da taşır. IronPDF, aktif bakımda olan modern bir Chromium motoru kullanır, güncel web standartlarını destekler ve asenkron kabiliyetler sunar.
Güvenlik uyumluluğu, modern CSS/JavaScript gereksinimleri veya dağıtım karmaşıklığı hakkında endişelenen ekipler için, IronPDF, terk edilmiş bağımlılıkların teknik borcu olmadan bir yol sunar. Geçiş, API çağrılarının ve yer tutucu sözdiziminin güncellenmesini gerektirir, ancak harici ikili dosyaları yönetmek ve belgelenmiş güvenlik açıklarını ele almak zorunluluğunu ortadan kaldırır.
Güvenlik duruşu, görselleştirme tutarlılığı, asenkron destek ve dağıtımın sadelik gereksinimlerinize karşı her iki seçeneği de değerlendirin. Bu karşılaştırmada özetlenen mimari farklılıkları anlamak, PDF oluşturma ihtiyaçlarınız ve modernizasyon hedeflerinizle uyumlu bir karar vermenize yardımcı olacaktır.
