KARşıLAşTıRMA

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.

AspektNReco.PdfGeneratorIronPDF
Render MotoruWebKit Qt (2012)Chromium (güncel)
Güvenlik20+ CVE, terk edilmişAktif güvenlik güncellemeleri
CSS DesteğiCSS2.1, sınırlı CSS3Tam CSS3, Grid, Flexbox
JavaScriptTemel ES5Tam ES6+
BağımlılıklarHarici wkhtmltopdf ikiliKendi içinde tamamlanmış
Asenkron DestekYalnızca senkronizeTam async/await
Web Yazı TipleriSınırlıTam Google Yazı Tipleri, @font-face
Ücretsiz DenemeFiligranlı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 Class
$vbLabelText   $csharpLabel

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

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

NReco.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 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 (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.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 Özelliği Eşlemeleri

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ı

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.PdfGeneratorIronPDFAmaç
[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)
$vbLabelText   $csharpLabel

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

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

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

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

Artı, platforma özgü wkhtmltopdf ikili kurulum ve yönetimi.

IronPDF kurulumu:

Install-Package IronPdf
Install-Package IronPdf
SHELL

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

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

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:

  1. IronPDF NuGet paketini kurun: Install-Package IronPdf
  2. Temel dönüştürme modelleri için HTML'den PDF'ye eğitimini gözden geçirin
  3. Web sayfası yakalama için URL to PDF dönüşümünü keşfedin
  4. 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.

Lütfen dikkate alınNReco ve wkhtmltopdf, ilgili sahiplerinin tescilli ticari markalarıdır. Bu site, NReco veya wkhtmltopdf ile ilişkili değil, onları onaylamıyor veya sponsor olmuyor. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.