KARşıLAşTıRMA

EO.Pdf ve IronPDF Karşılaştırması: Teknik Kılavuz

.NET geliştiricileri PDF oluşturma kütüphanelerini incelediklerinde, EO.Pdf, Chromium tabanlı render yeteneklerine sahip ticari bir seçenek olarak öne çıkıyor. Ancak, daha büyük dağıtım ayak izi, eski Internet Explorer geçiş sorunları ve statik global yapılandırma yaklaşımı, birçok ekibi alternatifleri değerlendirmeye yönlendiriyor. IronPDF, optimize edilmiş paketleme, örneğe dayalı, iş parçacığı güvenli yapılandırma ve gerçek platformlar arası destek ile rafine edilmiş bir Chromium uygulaması sunar.

Bu karşılaştırma, her iki kütüphaneyi teknik olarak ilgili yönler üzerinden inceleyerek profesyonel geliştiriciler ve mimarların .NET PDF ihtiyaçları için bilinçli kararlar almalarına yardımcı olur.

EO.Pdf'yi Anlamak

EO.Pdf, geliştirici lisansı başına $2,998 fiyatlandırılan ticari bir PDF kütüphanesidir ve yüksek kaliteli PDF oluşturma için Chromium tabanlı işleme özelliğine sahiptir. Kütüphane, Internet Explorer tabanlı orijinal render temelinden Chromium tabanlı bir sisteme geçiş yapılarak oluşturulmuştur.

Bu güncellemeye rağmen, kütüphanenin Chromium'a geçişi, Internet Explorer döneminin kalıntıları nedeniyle uyumluluk sorunlarını beraberinde getirdi. Kendi Chromium motorunu içerir, sonuç olarak daha büyük bir dağıtım ayak izi oluşturur bu da Docker imajlarını büyütür, CI/CD hatlarını yavaşlatır ve altyapı maliyetlerini artırır.

Ayrıca, EO.Pdf kendisini çapraz platform bir araç olarak pazarlarken, performansı ve kullanım kolaylığı öncelikli olarak Windows odaklı olup, Linux desteği genellikle ikinci planda tanımlanır. Dönüştürücü, çok kiracılı web uygulamalarında iş parçacığı güvenliği sorunları yaratan yapılandırma için statik HtmlToPdf.Options kullanır.

IronPDF'yi Anlamak

IronPDF, optimize edilmiş Chromium paketleme yaklaşımı ile modern .NET ortamları için tasarlanmış bir .NET PDF kütüphanesidir ve daha küçük bir dağıtım ayak izi ile sonuçlanır. Kütüphane, Windows'ı tercih etmek yerine tüm platformlar için eşit destek sağlamakta olup, çeşitli ortamlara dağıtılan uygulamalar için uygundur.

IronPDF, eş zamanlı senaryolar için iş parçacığı güvenliğini sağlayan, ChromePdfRenderer nesneleri aracılığıyla örnek tabanlı yapılandırma kullanır. Her işleme örneği kendi RenderingOptions'sini tutar ve diğer işlemlerden yapılandırmayı izole eder.

Mimari ve Konfigürasyon Karşılaştırması

Bu .NET PDF kütüphaneleri arasındaki temel mimari fark, yapılandırma yaklaşımlarında ve dağıtım özelliklerindedir.

AspektEO.PdfIronPDF
Paket BoyutuDaha büyük dağıtım ayak iziOptimiz edilmiş paketleme
Eski SorunlarIE geçiş kalıntısıTemiz, modern kod tabanı
Platform DesteğiWindows odaklıGerçek çapraz platform
YapılandırmaStatik/küreselNesneye dayalı, iş parçacığı güvenli
Fiyat$2,998/geliştiriciRekabetçi fiyatlandırma
API TasarımıKarışık (HtmlToPdf + ACM)Birleşik, tutarlı
DokümantasyonSınırlıAyrıntılı öğreticiler
Modern .NET.NET Standard.NET 6/7/8/9+ yerel
Asenkron DestekSınırlıTam async/await

Yapılandırma modeli, önemli bir farklılık teşkil eder. Kütüphanenin statik HtmlToPdf.Options tüm dönüşümleri küresel olarak etkiler ve çok iş parçacıklı uygulamalarda yarış koşulları yaratır. IronPDF'nin nesneye dayalı yaklaşımı, her render için izole edilmiş yapılandırmayı garanti eder.

Kod Karşılaştırması: Ortak PDF İşlemleri

HTML'den PDF'ye Dönüşüm

HTML içeriğini PDF'ye dönüştürmek, temel API farklılıklarını gösterir.

EO.Pdf:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";

        HtmlToPdf.ConvertHtml(html, "output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";

        HtmlToPdf.ConvertHtml(html, "output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
Imports EO.Pdf
Imports System

Class Program
    Shared Sub Main()
        Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>"

        HtmlToPdf.ConvertHtml(html, "output.pdf")

        Console.WriteLine("PDF created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

Kütüphane, bir dosya yoluna doğrudan kaydeden bir statik HtmlToPdf.ConvertHtml() yöntemi kullanır.IronPDFiki aşamalı bir yaklaşım kullanır: RenderHtmlAsPdf(), PdfDocument nesnesi döndürür ve bu nesne SaveAs() çağrılmadan önce daha fazla manipüle edilebilir. Bu iki aşamalı model, birleştirme, filigran ekleme veya güvenlik ayarlarının uygulanması gibi son işleme işlemleri için daha fazla esneklik sağlar.

Gelişmiş HTML renderleme seçenekleri için, HTML to PDF dönüştürme kılavuzunu keşfedin.

URL'den PDF'ye Dönüşüm

Web sayfalarını PDF belgeleri olarak yakalamak, benzer API modellerini gösterir.

EO.Pdf:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        HtmlToPdf.ConvertUrl(url, "webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        HtmlToPdf.ConvertUrl(url, "webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
Imports EO.Pdf
Imports System

Module Program
    Sub Main()
        Dim url As String = "https://www.example.com"

        HtmlToPdf.ConvertUrl(url, "webpage.pdf")

        Console.WriteLine("PDF from URL created successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");

        Console.WriteLine("PDF from URL created successfully!");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim url As String = "https://www.example.com"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf(url)
        pdf.SaveAs("webpage.pdf")

        Console.WriteLine("PDF from URL created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

Her iki kütüphane de URL'den PDF'e dönüştürme kabiliyeti sunar; EO.Pdf statik ConvertUrl() kullanırken,IronPDFörnek tabanlı RenderUrlAsPdf() kullanır. Aynı iş parçacığı güvenliği farkı uygulanır.

URL renderleme hakkında daha fazla bilgi için URL'den PDF'e belgelendirmeye göz atın.

PDF Birleştirme Operasyonları

Birden fazla PDF belgesi birleştirmek, farklı obje modeli yaklaşımlarını gösterir.

EO.Pdf:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        PdfDocument doc1 = new PdfDocument("file1.pdf");
        PdfDocument doc2 = new PdfDocument("file2.pdf");

        PdfDocument mergedDoc = new PdfDocument();
        mergedDoc.Append(doc1);
        mergedDoc.Append(doc2);

        mergedDoc.Save("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        PdfDocument doc1 = new PdfDocument("file1.pdf");
        PdfDocument doc2 = new PdfDocument("file2.pdf");

        PdfDocument mergedDoc = new PdfDocument();
        mergedDoc.Append(doc1);
        mergedDoc.Append(doc2);

        mergedDoc.Save("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
Imports EO.Pdf
Imports System

Class Program
    Shared Sub Main()
        Dim doc1 As New PdfDocument("file1.pdf")
        Dim doc2 As New PdfDocument("file2.pdf")

        Dim mergedDoc As New PdfDocument()
        mergedDoc.Append(doc1)
        mergedDoc.Append(doc2)

        mergedDoc.Save("merged.pdf")

        Console.WriteLine("PDFs merged successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdf1 = PdfDocument.FromFile("file1.pdf")
        Dim pdf2 = PdfDocument.FromFile("file2.pdf")

        Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
        merged.SaveAs("merged.pdf")

        Console.WriteLine("PDFs merged successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

Bu çözüm, belgeleri yapıcılar (new PdfDocument(path)) aracılığıyla yükler ve belgeleri boş bir konteynere eklemek için Append() kullanır. IronPDF, statik fabrika yöntemleri (PdfDocument.FromFile()) ve bir koleksiyonu kabul edip birleştirilmiş sonucu döndüren statik PdfDocument.Merge() yöntemi kullanır.

PDF birleştirme dokümantasyonunda ek birleşme operasyonlarını keşfedin.

Özel Sayfa Ayarları

Sayfa boyutu ve kenar boşluklarını yapılandırmak, yapılandırma modelindeki farkları gösterir.

EO.Pdf:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfOptions options = new HtmlToPdfOptions();
        options.PageSize = PdfPageSizes.A4;
        options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

        HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
        Console.WriteLine("PDF with custom settings created.");
    }
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfOptions options = new HtmlToPdfOptions();
        options.PageSize = PdfPageSizes.A4;
        options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

        HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
        Console.WriteLine("PDF with custom settings created.");
    }
}
Imports EO.Pdf
Imports System

Class Program
    Shared Sub Main()
        Dim options As New HtmlToPdfOptions()
        options.PageSize = PdfPageSizes.A4
        options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)

        HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options)
        Console.WriteLine("PDF with custom settings created.")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF with custom settings created.");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF with custom settings created.");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        Dim pdf = renderer.RenderHtmlFileAsPdf("C:/input.html")
        pdf.SaveAs("output.pdf")
        Console.WriteLine("PDF with custom settings created.")
    End Sub
End Class
$vbLabelText   $csharpLabel

Dönüştürücü, OutputArea birer RectangleF olarak inç cinsinden belirtilerek HtmlToPdfOptions kullanır. IronPDF, RenderingOptions nesnesi üzerinde milimetre cinsinden bireysel kenar boşluğu özellikleri (MarginTop, MarginBottom, MarginLeft, MarginRight) kullanır. Birim farkı, dönüşüm gerektirir: inches × 25.4 = millimeters.

Yöntem Eşleme Referansı

EO.Pdf geçişini değerlendiren veya yetenekleri karşılaştıran geliştiriciler için bu eşleştirme, eşdeğer işlemleri gösterir:

Temel İşlemler

EO.PdfIronPDF
HtmlToPdf.ConvertHtml(html, path)renderer.RenderHtmlAsPdf(html) sonra SaveAs()
HtmlToPdf.ConvertUrl(url, path)renderer.RenderUrlAsPdf(url) sonra SaveAs()
HtmlToPdf.Options.PageSizerenderer.RenderingOptions.PaperSize
HtmlToPdf.Options.OutputAreaMarginTop/Bottom/Left/Right
new PdfDocument(path)PdfDocument.FromFile(path)
doc.Append(other)PdfDocument.Merge(doc1, doc2)
doc.Save(path)pdf.SaveAs(path)

Yapılandırma Eşleştirmesi

EO.Pdf SeçeneğiIronPDF RenderingOptions
Options.PageSize = PdfPageSizes.A4PaperSize = PdfPaperSize.A4
Options.PageSize = PdfPageSizes.LetterPaperSize = PdfPaperSize.Letter
Options.OutputArea (RectangleF)MarginTop, MarginBottom, vb.
Options.BaseUrlBaseUrl

Sınıf Eşleştirme

EO.Pdf SınıfıIronPDF Eşdeğeri
HtmlToPdfChromePdfRenderer
PdfDocumentPdfDocument
HtmlToPdfOptionsChromePdfRenderOptions
AcmRenderGerekli değil
AcmTextHTML <span>, <p>
AcmBlockHTML <div>

Özellik Karşılaştırması Özeti

ÖzellikEO.PdfIronPDF
HTML'den PDF'yeEvetEvet
URL'yi PDF'ye çevirEvetEvet
PDF birleştirmeEvetEvet
Sayfa manipülasyonuEvetEvet
Başlıklar/altbilgilerEvetEvet (HTML tabanlı)
Güvenlik/şifrelemeEvetEvet
Form alanlarıEvetEvet
FiligranlarEvetEvet
ACM renderEvetHTML/CSS (ACM yok)
İş parçacığı güvenli yapılandırmaEvet (iş parçacığı başına izole edilmiş)Evet (örnek)
Çapraz platformSınırlıDesteklenen

İş Parçacığı Güvenliği Sorunu

EO.Pdf'nin statik yapılandırması, çok iş parçacıklı uygulamalarda temel bir sorun yaratır:

// EO.Pdf - DANGER: Static options affect ALL threads!
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;
HtmlToPdf.Options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
HtmlToPdf.ConvertHtml(html, "output.pdf");
// EO.Pdf - DANGER: Static options affect ALL threads!
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;
HtmlToPdf.Options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
HtmlToPdf.ConvertHtml(html, "output.pdf");
' EO.Pdf - DANGER: Static options affect ALL threads!
HtmlToPdf.Options.PageSize = PdfPageSizes.A4
HtmlToPdf.Options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)
HtmlToPdf.ConvertHtml(html, "output.pdf")
$vbLabelText   $csharpLabel

Birçok eş zamanlı isteği işleyen bir web uygulamasında, bir isteğin yapılandırması diğer tüm istekleri etkiler. Bu, yarış koşulları yaratarak PDF'lerin beklenmedik ayarlarla üretilmesine neden olur.

IronPDF'nin nesne tabanlı yaklaşımı bu sorunu ortadan kaldırır:

//IronPDF- Thread-safe, isolated options per renderer instance
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 12.7;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
//IronPDF- Thread-safe, isolated options per renderer instance
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 12.7;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
'IronPDF- Thread-safe, isolated options per renderer instance
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 12.7
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Her ChromePdfRenderer örneği, eş zamanlı senaryolar için izolasyonu sağlamak üzere kendi yapılandırmasını tutar.

Takımlar EO.Pdf'den IronPDF'e Geçmeyi Düşündüğünde

Geliştirme ekipleri, birkaç nedenden dolayı EO.Pdf'den IronPDF'e geçiş yapmayı değerlendirmektedir:

Paket Boyutu Optimizasyonu: EO.Pdf'nin daha büyük dağıtım ayak izi, Docker imajlarını büyütür, CI/CD hatlarını yavaşlatır ve altyapı maliyetlerini artırır. IronPDF'nin optimize edilmiş paketlemesi, dağıtım verimliliği iyileştirmeleri sağlar.

İş Parçacığı Güvenliği Gereklilikleri: Çok kiracılı web uygulamaları, her istek için izole edilmiş yapılandırma gerektirir. Kütüphanenin statik HtmlToPdf.Options'sı, IronPDF'nin örnek tabanlı yaklaşımının ortadan kaldırdığı yarış koşulları yaratır.

Çapraz Platform Dağıtım: Linux veya macOS ortamlarını hedefleyen uygulamalar, EO.Pdf'in Windows merkezli tasarımı ile sınırlamalarla karşılaşır. IronPDF, tutarlı davranış ile gerçek çapraz platform desteği sağlar.

Eski Yükten Kaçınma: Internet Explorer'dan Chromium'a geçiş, uyumluluk sorunları yarattı. IronPDF, temiz, modern kod tabanı ile bu teknik borçtan kaçınır.

Modern .NET Desteği: .NET 6/7/8/9+ hedefleyen uygulamalar, EO.Pdf'nin.NET Standardhedeflemesine karşı IronPDF'nin yerel desteğinden yararlanır.

ACM Geçişi: EO.Pdf'in Gelişmiş İçerik Modeli (AcmRender, AcmText, AcmBlock) kullanan ekipler, IronPDF'nin HTML/CSS yaklaşımını daha basit ve daha sürdürülebilir bulurlar.

Güçlü Yönler ve Dikkat Edilmesi Gerekenler

EO.Pdf'nin Güçlü Yönleri

  • Chromium Render: Yüksek kaliteli W3C uyumlu çıktı
  • Yerleşik Kütüphane: Üretim ortamlarında kanıtlanmış
  • Tek Aşamalı Dönüştürme: ConvertHtml() ile doğrudan dosya çıktısı

EO.Pdf Dikkate Alınması Gerekenler

  • Masif Paket Boyutu: 126MB dağıtım ayak izi
  • Eski IE Kalıntısı: Geçişten kaynaklanan uyumluluk sorunları
  • Statik Yapılandırma: Çok kiracılı uygulamalarda iş parçacığı güvenliği sorunları
  • Windows Merkezli: Sınırlı Linux/macOS desteği
  • Fiyat Noktası: Geliştirici lisansı başına $2,998
  • Sınırlı Dokümantasyon: Daha az öğretici ve örnek

IronPDFGüçlü Yönleri

  • Optimizasyonlu Ayak İzi: ~50MB paket boyutu (yüzde 50 daha küçük)
  • Gerçek Çapraz Platform: Windows, Linux, macOS, Docker
  • Thread-Güvenli Konfigürasyon: Örnek tabanlı render seçenekleri
  • Modern API: Tutarlı, sezgisel metot isimleri
  • Aktif Geliştirme: Düzenli güncellemeler ve güvenlik yamaları
  • Kapsamlı Kaynaklar: Kapsamlı öğreticiler ve dokümantasyon

IronPDFDikkate Alınacaklar

  • İki Aşamalı Kayıt: Render PdfDocument döndürür, ardından SaveAs() çağrılır
  • Birim Farklılıkları: Kenar boşlukları için milimetre kullanır (EO.Pdf inçine karşın)

Sonuç

EO.Pdf ve IronPDF, her ikisi de .NET geliştiricileri için Chromium tabanlı PDF oluşturma sağlar, ancak farklı mimari yaklaşımları temsil ederler. EO.Pdf yerleşik işlevsellik sunar ancak 126MB paket boyutu, eski İnternet Explorer geçiş zorlukları ve thread-güvensiz statik konfigürasyon barındırır.

IronPDF, optimize edilmiş paketleme, gerçek çapraz platform desteği ve örnek tabanlı thread-güvenli konfigürasyon ile modern bir alternatif sunar. Dağıtım verimliliği, eşzamanlı çalışma güvenliği veya çapraz platform hedefleme gerektiren ekipler için IronPDF, bu özel gereksinimleri ele alır.

.NET 10, C# 14 ve 2026'ya kadar uygulama geliştirmeyi planlayan organizasyonlar, seçimlerini belirli önceliklere dayandırır. Tek iplikli Windows ortamlarında mevcut EO.Pdf uygulamaları olan ekipler burada değer bulmaya devam edebilir. Modern çoklu kiracılı uygulamalar, container konuşlandırmalar veya çapraz platform gereksinimleri içinIronPDFdaha uygun bir yaklaşım sağlar.

ücretsiz deneme sürümü ileIronPDFdeğerlendirmeye başlayın ve özel gereksinimlerinizle uygunluğunu değerlendirmek için kapsamlı belgeleri keşfedin.