NReco.PdfGenerator ve IronPDF Karşılaştırması: Teknik Kılavuz
NReco.PdfGenerator Genel Bakışı
NReco.PdfGenerator, HTML belgelerini wkhtmltopdf komut satırı aracını kullanarak PDF'lere dönüştüren bir C# kütüphanesidir. Düzgün bir API sunar ve wkhtmltopdf ile işlem yapan HtmlToPdfConverter sınıfı üzerinden çalışır.
Wkhtmltopdf aracı işleme motoru olarak WebKit Qt kullanır, yaklaşık 2012'ye kadar süren bir sürümdür. Geniş kullanıma sahip olmasına rağmen, wkhtmltopdf için geliştirme 2020'de durdu, bu da ona güvenlik güncellemeleri ve yeni özellikler sağlamıyor. Bu, güncel CSS ve JavaScript gereksinimleriyle modern uygulamalar geliştiren ekipler için zorluklar oluşturur.
NReco.PdfGenerator'ın ücretsiz sürümü, oluşturulan PDF'lere filigranlar ekler ve üretim kullanımı için ticari bir lisans gerektirir. Bu lisansların fiyatlandırması satış ekibiyle iletişime geçmeyi gerektirir, bu da tedarik süreçlerini zorlaştırabilir.
IronPDF'e Giriş
IronPDF, HTML, CSS ve JavaScript'i modern bir Chromium tabanlı motor kullanarak PDF belgelerine dönüştüren bir .NET kütüphanesidir. ChromePdfRenderer sınıfı, HTML'den PDF'e dönüşüm için ana arayüz olarak hizmet eder ve geniş yapılandırma seçeneklerini RenderingOptions özelliği ile sunar.
Wkhtmltopdf sarmalayıcılarının aksine, IronPDF'in işleme motoru, güvenlik ve uyumluluk için düzenli güncellemeler alır. Kütüphane kendi kendine barındırılır ve farklı platformlar arasında dış bağımlılık ikili dosyalarını yönetme gerekliliğini ortadan kaldırır.
IronPDF, satın almadan önce yetenekleri değerlendirmeleri için ekiplerin tam işlevsellikle (filigransız) deneme süresi sunar. Ticari lisanslama, yayınlanmış, şeffaf fiyatlandırma kullanır.
İşleme Motorlarının Karşılaştırılması
Bu kütüphaneler arasındaki temel fark, güvenlik ve CSS uyumluluğunu etkileyen işleme motorlarındadır.
| Aspekt | NReco.PdfGenerator | IronPDF |
|---|---|---|
| Render Motoru | WebKit Qt (2012) | Chromium (güncel) |
| Güvenlik | 20+ CVE, 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+ |
| Bağımlılıklar | Harici wkhtmltopdf ikili | Kendi içinde tamamlanmış |
| Asenkron Destek | Yalnızca senkronize | Tam async/await |
| Web Yazı Tipleri | Sınırlı | Tam Google Yazı Tipleri, @font-face |
| Ücretsiz Deneme | Filigranlı | Tam işlevsellik |
| Fiyat Şeffaflığı | Opak, satış iletişime geç | Yayınlanmış fiyatlandırma |
NReco.PdfGenerator, wkhtmltopdf'nin sunucu taraflı istek sahtekarlığı, yerel dosya okuma güvenlik açıkları ve potansiyel uzaktan kod çalıştırma ile ilgili belgelenmiş CVE'leri de dahil olmak üzere tüm güvenlik açıklarını devralır. Wkhtmltopdf'in 2020 yılından beri terk edilmiş olmasıyla, bu sorunlar için herhangi bir yama mevcut değil.
IronPDF'in Chromium motoru, grid ve flexbox düzenleri, CSS değişkenleri ve özel özellikler gibi modern CSS özelliklerini etkinleştiren mevcut web standartları desteği sağlar. JavaScript yürütülmesi async/await desenlerini içeren ES6+ sözdizimini destekler.
Temel HTML'den PDF'ye Dönüştürme
Her iki kütüphane de temel HTML'den PDF'e dönüşümünü destekler, ancak farklı API modelleriyle.
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 yaklaşımı:
// 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 byte[] dizisi dönerken,IronPDFdaha kullanışlı yöntemlere sahip PdfDocument nesnesi döner, örneğin SaveAs() gibi.IronPDFnesnesi ayrıca bayt dizisi erişimi için BinaryData ve akış tabanlı işlemler için Stream sağlar.
HTML'den PDF'e dönüşüm iş akışına aşina olan geliştiriciler için, IronPDF'in API'si sezgisel olacaktır ve temel dönüşümün ötesinde ek yetenekler sunar.
URL'den PDF'ye Dönüşüm
Web sayfalarını PDF belgelerine dönüştürmek, yöntem adlandırması ve anlamsallık açısından API farklarını ortaya çıkarır.
NReco.PdfGenerator URL dönüşümü:
// 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üşümü:
// 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 ki bu semantik olarak kafa karıştırıcı olabilir. IronPDF, gerçekleştirilen işlemi açıkça belirten özel bir RenderUrlAsPdf yöntemi sağlar.
Özel Sayfa Boyutu ve Kenar Boşlukları
Profesyonel belgeler, genellikle belirli sayfa boyutları ve kenar boşluğu yapılandırmalarını gerektirir. Her iki kütüphane de farklı yapılandırma kalıplarıyla bu özelleştirmeleri 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 (A4 için 210×297) belirtmeyi ve PageMargins nesnesi kullanmayı gerektirir. IronPDF, standart boyutlar için PdfPaperSize enum'u kullanır ve RenderingOptions üzerinden bireysel kenar boşluğu özellikleri sağlar. RenderingOptions sınıfı, tüm sayfa yapılandırmalarını merkezileştirir, ayarları IDE otomatik tamamlama aracılığıyla keşfedilebilir hale getirir.
API Eşleme Referansı
NReco.PdfGenerator'dan IronPDF'e geçmeyi düşünen ekipler için, API eşlemelerini anlamak çabayı tahmin etmeye ve geçişi planlamaya yardımcı olur.
Çekirdek Yöntem Eşlemeleri
| 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 Özelliği Eşlemeleri
| 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ı
Başlıklar ve altbilgiler genellikle sayfa numaraları gibi dinamik içerikler içerir. Kütüphaneler arasındaki yer tutucu sözdizimi farklıdır:
| NReco.PdfGenerator | IronPDF | Amaç |
|---|---|---|
[page] | {page} | Geçerli sayfa numarası |
[topage] | {total-pages} | Toplam sayfa sayısı |
[date] | {date} | Geçerli tarih |
[time] | {time} | Geçerli zaman |
[title] | {html-title} | Belge başlığı |
[webpage] | {url} | Kaynak URL |
NReco.PdfGenerator'dan geçen ekipler, yeni yer tutucu sözdizimi ile tüm başlık ve altbilgi şablonlarını güncellemelidir.
Yakınlaştırma Değeri Dönüşümü
NReco.PdfGenerator yakınlaştırma için float değerlerini (0.0-2.0) kullanırken,IronPDFyüzde değerlerini 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)Async Destek Karşılaştırması
Modern web uygulamaları, iş parçacıklarını engellemeyen asenkron işlemlerden faydalanır. Bu, eşzamanlı istekleri işleyen 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 sunucusu 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 desenlerini 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ını serbest bırakarak ölçeklenebilirliği geliştirir.
Bağımlılık ve Dağıtım Farklılıkları
NReco.PdfGenerator sistemde wkhtmltopdf ikilisini gerektirir. Bu dağıtım zorlukları yaratır:
- Platforma özgü ikililer yönetilmelidir (Windows .exe, Linux .so, macOS .dylib)
- Docker görüntüleri wkhtmltopdf kurulumu gerektirir
- CI/CD boru hatları ikili tedarik adımlarına ihtiyaç duyar
- Güvenlik tarayıcıları bilinen CVE'leri işaretler
IronPDF, bir NuGet paketi olarak kendi içindedir:
#IronPDFinstallation - complete
dotnet add package IronPdf
# NReco.PdfGenerator installation - plus binary management
dotnet add package NReco.PdfGenerator
# Plus: install wkhtmltopdf per platform#IronPDFinstallation - 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 ikililerini kaldırabilir ve dağıtım süreçlerini basitleştirebilir.
Takımlar, NReco.PdfGenerator'dan IronPDF'ye Geçişi Düşündüğünde
Birçok faktör, ekipleri NReco.PdfGenerator yerine IronPDF'yi değerlendirmeye yönlendirir:
Güvenlik Uyumluluğu: Güvenlik gereksinimleri olan kuruluşlar, wkhtmltopdf CVE'lerini güvenlik tarayıcıları tespit ettiğinde zorluk yaşayabilir. Wkhtmltopdf terk edildiğinden, bu güvenlik açıkları NReco.PdfGenerator içinde bir çözüme sahip değildir. 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 özelliklerini gerektiren projeler, wkhtmltopdf'nin 2012 dönemi WebKit motorunu kullanamaz. Web tasarımcıları sıklıkla NReco.PdfGenerator'da yanlış veya hiç render edilmeyen düzenler üretir.
JavaScript Uyumluluğu: JavaScript ile render edilmiş içeriklerle (grafikler, dinamik tablolar, hesaplanan değerler) PDF oluşturan uygulamalar, modern JavaScript desteğine ihtiyaç duyar. Wkhtmltopdf'nin ES5 sınırlamaları, çağdaş JavaScript kütüphanelerinin kullanımını engeller.
Asenkron Uygulama Mimarisi: ASP.NET Core uygulamaları, iş parçacığı verimliliğini korumak için asenkron PDF oluşturma işleminden faydalanır. NReco.PdfGenerator'un yalnızca eşzamanlı API'si ölçeklenebilirlik darboğazları oluşturabilir.
Dağıtımın Basitleştirilmesi: Geliştirme, hazırlık ve üretim ortamlarında platforma özgü wkhtmltopdf ikilileri yönetmek, operasyonel karmaşıklık ekler. Takımlar CI/CD boru hatlarını basitleştiren kendi içinde çözümler arar.
Ücretlendirme Açıklığı: Bütçe planlama öngörülebilir maliyetler gerektirir. NReco.PdfGenerator'ın opak fiyatlandırması (satışla iletişim kurma) tedariki zorlaştırırken, IronPDF'nin yayınlanmış fiyatlandırması doğrudan bütçeleme sağlar.
Kurulum Karşılaştırması
NReco.PdfGenerator kurulumu:
Install-Package NReco.PdfGeneratorInstall-Package NReco.PdfGeneratorArtı, platforma özgü wkhtmltopdf ikili kurulum ve yönetimi.
IronPDF kurulumu:
Install-Package IronPdfInstall-Package IronPdfIronPDF, uygulama başlangıcında lisans anahtarı yapılandırması 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 ve modern .NET geliştirmede .NET 10 ve C# 14 hedef alarak uyumludur.
Performans Hususları
IronPDF'nin Chromium motoru ilk kullanımda bir başlatma maliyetine sahiptir (Chromium başlatması için yaklaşık 1,5 saniye). Sonraki render işlemleri önemli ölçüde daha hızlıdır. Gecikme duyarlı başlangıç gereksinimleri olan uygulamalar için, uygulama başlatıldığında render motorunu ısıtmak, bu gecikmenin kullanıcıya yönelik işlemleri etkilemesini önler:
// 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 bir başlatma yükü ile birlikte gelir ve ayrıca harici süreç yönetiminden kaynaklanan sürekli bir bellek yükü de vardır.
Karar Verme
NReco.PdfGenerator ileIronPDFarasındaki seçim spesifik ihtiyaçlarınıza bağlıdır:
NReco.PdfGenerator'ı değerlendirin: Mevcut wkhtmltopdf tabanlı iş akışlarınız doğru çalışıyor, güvenlik tarayıcısı bulguları ortamınızda kabul edilebilirse, modern CSS veya JavaScript özelliklerine ihtiyacınız yoksa ve platforma özgü ikili dağıtımı yönetebiliyorsanız.
IronPDF'yi değerlendirin: Güvenlik uyumluluğu wkhtmltopdf CVE'lerini ele almayı gerektiriyorsa, tasarımlarınız Grid veya Flexbox gibi modern CSS özelliklerini kullanıyorsa, web uygulamaları için async/await desteğine ihtiyacınız varsa, harici ikilileri ortadan kaldırarak dağıtımı basitleştirmek istiyorsanız veya şeffaf lisanslama ve fiyatlandırmayı tercih ediyorsanız.
2025'te modern .NET uygulamaları geliştiren ve 2026'ya yönelik planlama yapan ekipler için, IronPDF'nin aktif olarak sürdürülen Chromium motoru, güncel ve gelecekteki web standartları uyumluluğu için bir temel sağlar.
IronPDFile Başlangıç
PDF oluşturma gereksinimleriniz için IronPDF'yi değerlendirmek için:
- IronPDF NuGet paketini kurun:
Install-Package IronPdf - Temel dönüştürme modelleri için HTML'den PDF'ye eğitimini gözden geçirin
- Web sayfası yakalama için URL to PDF dönüşümünü keşfedin
- Profesyonel belgeler için başlıklar ve altbilgileri yapılandırın
IronPDF eğiticileri yaygın senaryolar için kapsamlı örnekler sunarken, API referansı tüm mevcut sınıf ve yöntemleri belgelemiştir.
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'sini ve güvenlik açıklarını ve render sınırlamalarını ileriye taşır. IronPDF, aktif olarak sürdürülen, güncel web standartları desteği ve asenkron yetenekleri olan modern bir Chromium motoru kullanır.
Güvenlik uyumluluğu, modern CSS/JavaScript gereksinimleri veya dağıtım karmaşıklığı konusunda endişeli olan ekipler, terk edilen bağımlılıkların teknik borcu olmadan bir yol sağlar. Geçiş, API çağrılarını ve yer tutucu söz dizimini güncellemeyi gerektirir, ancak dış ikili yönetme ihtiyacını ortadan kaldırır ve belgelenmiş güvenlik açıklarını ele alır.
Güvenlik duruşu, render doğruluğu, async desteği ve dağıtım basitliği için spesifik gereksinimlerinizi karşılaştırın ve iki seçeneği değerlendirin. Bu karşılaştırmada özetlenen mimari farklılıkları anlamak, PDF oluşturma ihtiyaçlarınızı ve modernizasyon hedeflerinizi karşılayan bilinçli bir karar vermenize yardımcı olacaktır.
