KARşıLAşTıRMA

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ğlamNReco.PdfGeneratorIronPDF
Render MotoruWebKit Qt (2012)Chromium (güncel)
Güvenlik20+ CVEs, terk edilmişAktif güvenlik güncellemeleri
CSS DesteğiCSS2.1, sınırlı CSS3Tam CSS3, Grid, Flexbox
JavaScriptTemel ES5Tam ES6+
BagimliliklarHarici wkhtmltopdf ikili dosyasıKendisi yeterli
Async DestegiYalnızca eşzamanlıTam async/await
Web Yazı TipleriSınırlıTam Google Yazı Tipleri, @font-face
Ücretsiz DenemeFiligranlıTam işlevsellik
Fiyatlandırma ŞeffaflığıBelirsiz, satışla iletişime geçinYayı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 Class
$vbLabelText   $csharpLabel

IronPDF 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 Class
$vbLabelText   $csharpLabel

Her 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 Class
$vbLabelText   $csharpLabel

IronPDF 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 Class
$vbLabelText   $csharpLabel

NReco.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 Class
$vbLabelText   $csharpLabel

IronPDF 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 Class
$vbLabelText   $csharpLabel

NReco.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.PdfGeneratorIronPDF
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.PdfGeneratorIronPDF
Orientation = PageOrientation.LandscapeRenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
Size = PageSize.A4RenderingOptions.PaperSize = PdfPaperSize.A4
Margins.Top = 10RenderingOptions.MarginTop = 10
Zoom = 0.9fRenderingOptions.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.PdfGeneratorIronPDFAmac
[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)
$vbLabelText   $csharpLabel

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 thread
$vbLabelText   $csharpLabel

IronPDF, 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")
$vbLabelText   $csharpLabel

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 platform
SHELL

NReco.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.PdfGenerator
Install-Package NReco.PdfGenerator
SHELL

Artı, platforma özgü wkhtmltopdf ikili dosyalarının kurulumu ve yönetimi.

IronPDF kurulumu:

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPDF, 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"
$vbLabelText   $csharpLabel

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>")
$vbLabelText   $csharpLabel

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:

  1. IronPDF NuGet paketi'ni yükleyin: Install-Package IronPdf
  2. Temel dönüşüm kalıpları için HTML'den PDF'ye öğreticiyi inceleyin
  3. Web sayfasi yakalamasi icin URL'den PDF'ye donusumunu inceleyin
  4. 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.