IRONSOFTWAREHOME
VIDEOLAR

HTML'den PDF'e Dönüşümde Yazı Tiplerini Yönetmek

Curtis Chau
Curtis Chau
Updated: 18 Mayıs 2026

EO.Pdf birkaç mimari zorluğı ortaya çıkarır ve bu zorluklar geliştirme ekiplerini alternatifleri değerlendirmeye sevk eder. Bu sorunları anlamak, göç stratejinizi planlamada esastır.

EO.Pdf Sorunları

  1. Pakete dahil edilmiş Chromium Ayak İzi: EO.Pdf (güncel NuGet sürümü 26.1.34, Mart 2026), kendi Chromium bazlı renderlayıcısını taşır, bu da kurulum ayak izini, Chromium olmayan kütüphanelere göre artırır ve Docker görüntülerine ve CI/CD pipeline'larına yük ekler.

  2. Eski Mimarisi Yükü: EO.Pdf'nin HTML'den PDF'ye dönüştürücüsü, proje bir Chromium bazlı render'a geçmeden önce gömülü bir Internet Explorer / Trident motoru üzerine inşa edilmiştir. Geçiş, sürümler arasında bazı API tuhaflıkları ve davranış farklılıkları bırakmıştır.

  3. Windows'ta Yalnızca .NET Core: "Çok Platformlu" olarak pazarlanmasına rağmen, Essential Objects'ün kendi .NET Core belgeleri, EO.Pdf'nin yalnızca Windows'ta .NET Core 3.1+ ve .NET 5/6 desteklediğini belirtir — Linux ve macOS resmi olarak desteklenmez.

  4. Statik Global Seçenekler: EO.Pdf'ın birincil HTML'den PDF'e giriş noktası, paylaşılan HtmlToPdf.Options ile statik HtmlToPdf sınıfıdır. Bu global durumu birden çok iş parçacığından değiştirmek güvenli değildir ve çok kiracılı web uygulamalarında gariptir.

  5. Ücretli Ticari Lisans: EO.Pdf, Tek, 3 Lisans Paketi, Kurumsal ve Kurumsal Plus seviyelerinde satılmaktadır (kalıcı ücretsiz seviye yok — sadece suyla işaretlenmiş 30 günlük deneme). Tam fiyatlar sipariş sayfasında görüntülenebilir.

Mimari̇ Karşılaştırma

AspektEO.PdfIronPDF
RenderlayıcıPakete dahil edilmiş Chromium (IE/Trident'ten geçiş yapıldı)Gömülü Chromium
Eski SorunlarIE/Trident geçiş yüküBaşlangıçtan beri Chromium üzerinde inşa edilmiş
Platform Desteği.NET Core üzerinde yalnızca WindowsWindows, Linux, macOS, Docker, Azure
YapılandırmaStatik HtmlToPdf.Options (thread-safe değil)Örnek tabanlı ChromePdfRenderer (thread-safe)
API TasarımıKarışık (HtmlToPdf statik + ACM nesne modeli)Birleşik ChromePdfRenderer + HTML/CSS
Lisans modeliTek / 3-Lisans / Kurumsal / Kurumsal Plus (30 günlük deneme)Geliştirici başına ticari; ücretsiz geliştirme denemesi
Modern .NET.NET Framework + .NET Core 3.1+ (yalnızca Windows).NET Framework, .NET 6/7/8/9 çarpraz platform
Asenkron DestekSınırlıTam RenderHtmlAsPdfAsync / RenderUrlAsPdfAsync

Kilit Göç Faydaları

  1. .NET Core / .NET 6+ üzerinde çok platformlu: Windows'a ek olarak Linux, macOS ve Docker üzerinde çalışır
  2. İş Parçacığı Güvenli Yapılandırma: Statik global yerine örnek tabanlı render seçenekleri
  3. Modern API: Tutarlı yöntem isimleri — RenderHtmlAsPdf, RenderUrlAsPdf, PdfDocument.Merge
  4. Tam Asenkron Destek: Kapsayıcı olmayan boru hatları için RenderHtmlAsPdfAsync ve RenderUrlAsPdfAsync
  5. Belgeleme: Geniş kapsamlı eğitimler, nasıl yapılır rehberleri ve aktif nesne referansı

Migration'a Ön Hazırlık

Ön Koşullar

Ortamınızın bu gereksinimleri karşıladığından emin olun:

  • .NET Framework 4.6.2+ or .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ veya C# eklentisi ile VS Code
  • NuGet Package Manager erişimi -IronPDF lisans anahtarı (ücretsiz deneme sürümü ironpdf.com adresinde mevcut)

EO.Pdf Kullanımını Denetleme

Çözüm dizininde bu komutları çalıştırarak tüm EO.Pdf referanslarını belirleyin:

# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
SHELL

Aranacak yaygın EO.Pdf ad alanları:

  • EO.Pdf - Çekirdek HTML'den PDF'e
  • EO.Pdf.Acm - Gelişmiş İçerik Modeli (ACM)
  • EO.Pdf.Contents - Düşük seviyeli içerik manipülasyonu
  • EO.Pdf.Drawing - Grafik işlemleri

Çekirdek Desen Değişimini Anlama

EO.Pdf ve IronPDF arasındaki en önemli mimari fark, yapılandırma kapsamıdır. EO.Pdf tüm dönüşümleri etkileyen statik yöntemlerle küresel ayarlar kullanır—bu desen web uygulamalarında iş parçacığı güvenliği sorunlarına yol açar.IronPDF örnek tabanlı renderleyiciler ve yerel ayarlar kullanır, her dönüşümün izole olmasını sağlar.

Adım Adım Geçiş Süreci

1. Adım: NuGet Paketlerini Güncelleyin

EO.Pdf'yi kaldırın ve IronPDF'yi yükleyin:

# Remove EO.Pdf
dotnet remove package EO.Pdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Adım 2: Ad Alanı Referanslarını Güncelleyin

EO.Pdf ad alanlarınıIronPDF ile değiştirin:

// Remove these
using EO.Pdf;
using EO.Pdf.Acm;

// Add this
using IronPdf;

Adım 3: Lisansı Yapılandırın

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Tam API Geçiş Referansı

Temel Sınıf Eşlemeleri

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

Metot Haritalama

EO.Pdf YöntemiIronPDF Yöntemi
HtmlToPdf.ConvertHtml(html, path)renderer.RenderHtmlAsPdf(html) daha sonra SaveAs(path)
HtmlToPdf.ConvertUrl(url, path)renderer.RenderUrlAsPdf(url) daha sonra SaveAs(path)
PdfDocument.Save(path)pdf.SaveAs(path)
new PdfDocument(path)PdfDocument.FromFile(path)
PdfDocument.Merge(doc1, doc2) (statik)PdfDocument.Merge(doc1, doc2) (statik)

Seçenekler Eşleme

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

Kod Göç Örnekleri

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

Temel HTML'den PDF'ye dönüşüm, statik yöntemlerden örnek tabanlı renderlamaya geçişi gösterir.

EO.Pdf Uygulaması:

// 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!");
    }
}

IronPDF Uygulaması:

// 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!");
    }
}

IronPDF'in iki adımlı deseni (oluştur, ardından kaydet), kaydetmeden önce ek manipülasyon için PdfDocument nesnesine erişim sağlar. Daha fazla seçenek için, HTML'den PDF'e dokümantasyona bakın.

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

EO.Pdf Uygulaması:

// 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!");
    }
}

IronPDF Uygulaması:

// 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!");
    }
}

IronPDF'in RenderUrlAsPdf, tam JavaScript yürütmesi ve modern CSS desteği sağlar. Daha fazla seçenek için, URL'den PDF'e dokümantas bakın.

Özel Ayarlarla HTML Dosyası

Bu örnek, yapılandırma desenlerindeki önemli farkı göstermektedir—EO.Pdf'ın inches ile olan OutputArea'si, İronPDF'in milimetre cinsinden bireysel kenar boşluğu özellikleri ile olan farkını.

EO.Pdf Uygulaması:

// 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.");
    }
}

IronPDF Uygulaması:

// 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.");
    }
}

Birim dönüşümüne dikkat edin: EO.Pdf, OutputArea'de inç kullanırken,IronPDF milimetre kullanır. Dönüştürmek için kullanın: inches × 25.4 = mm. Daha fazla seçenek için işleme seçenekleri belgesine bakın.

Birden Fazla PDF'yi Birleştirme

Her iki kütüphane de belgeleri birleştirmek için statik PdfDocument.Merge ortaya çıkarıyor — EO.Pdf örnek Append yöntemi yok, bu nedenle doc.Append(other) kullanan herhangi bir kod geçersizdir ve Merge'e taşınması gereklidir.

EO.Pdf Uygulaması:

// 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");

        // EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
        PdfDocument mergedDoc = PdfDocument.Merge(doc1, doc2);

        mergedDoc.Save("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}

IronPDF Uygulaması:

// 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!");
    }
}

IronPDF'in statik Merge, belgelerin bir params listesini veya bir List<PdfDocument>'i kabul eder. Yapı oluşturucudan (new PdfDocument(path)) statik fabrikaya (PdfDocument.FromFile(path)) geçişe dikkat edin. Daha fazla seçenek için PDF birleştirme belgelerine bakın.

Kritik Taşıma Notları

Kenar Boşluğu Birimi Dönüşümü

EO.Pdf, OutputArea'de inç kullanır.IronPDF milimetre kullanır. Dönüştürmek için kullanın: inches × 25.4 = mm

// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;

Statikten Örnek Bazlı Yapılandırmaya

Tüm HtmlToPdf.Options.X'i renderer.RenderingOptions.X ile değiştirin:

// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;

//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

ACM'den HTML'e Geçiş

EO.Pdf'ın Gelişmiş İçerik Modelini (AcmRender, AcmText, AcmBlock) kullanıyorsanız, standart HTML/CSS'ye geçiş yapın:

// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));

//IronPDF HTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
C#

İki Aşamalı Kaydetme Deseni

EO.Pdf doğrudan ConvertHtml()'ye kaydeder.IronPDF bir PdfDocument nesnesi döndürür, ardından SaveAs() çağırırsınız:

// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");

//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");

Yapılandırıcıdan Statik Fabrikaya

new PdfDocument(path) ile PdfDocument.FromFile(path) değiştirin:

// EO.Pdf
var doc = new PdfDocument("file.pdf");

// IronPDF
var doc = PdfDocument.FromFile("file.pdf");

Taşınma Sonrası Kontrollistesi

Kod taşımasını tamamladıktan sonra, aşağıdakileri doğrulayın:

  • Oluşturulan PDF'lerin görsel karşılaştırması
  • Başlıklar/altbilgilerin doğru bir şekilde renderlandığını doğrulayın
  • Güvenlik/şifreleme ayarlarını test edin
  • Birleştirme işlemlerini doğrulayın
  • Performans kıyaslaması
  • Çok platformlu test (Windows, Linux, macOS)
  • EO.Pdf lisans dosyalarını kaldırın
  • Belgeleri güncelleyin

Ek Kaynaklar


EO.Pdf'den IronPDF'ye geçiş, eski IE/Trident dönemine ait yükü ve EO.Pdf'nin statik global seçeneklerinin iş parçacığı güvenliği endişelerini ele alır. Örneğe dayalı yapılandırmaya geçiş, PDF üretim kodunuzun eş zamanlı yük altında güvenilir bir şekilde çalışmasını garantilerken, IronPDF'nin çarpraz platform desteği dağıtımı Windows'un ötesine, Linux, macOS ve Docker'a genişletir.

Lütfen dikkate alın: EO.Pdf ve Essential Objects, kendi sahibinin tescilli markalarıdır. Bu site, Essential Objects ile ilişkili, onaylanmış ya da desteklenmiş değildir. 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.
Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez