IRONSOFTWAREHOME
VIDEOLAR

Razor Sayfalarını ASP .NET Core Web Uygulaması'nda PDF'e Dönüştürmek

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

.NET için ABCpdf'den IronPDF'e geçiş, geliştirme ekipleri için daha basit lisanslama, modern belgeler ve yerel çapraz platform desteği hedeflemek için stratejik bir yükseltmedir. Bu kapsamlı rehber, gerçek dünya senaryolarından API eşlemeleri ve kod dönüştürme örnekleriyle adım adım geçiş yolu sunar.

.NET Framework 4.6.2 ile çalışıyor veya .NET 9'u hedefliyorsanız, bu ABCpdf geçiş kılavuzu IronPDF'nin Chrome tabanlı render motoruna kolay bir geçiş sağlar.

Neden ABCpdf Geçişini Düşünün?

ABCpdf, WebSupergoo'dan (geçerli sürüm: v13.4.4, 9 Nisan 2026 tarihinde yayınlandı) yıllardır yetenekli bir .NET PDF kütüphanesi olmuştur. Ancak, modern geliştirme ekipleri için IronPDF'yi cazip bir alternatif yapan birçok faktör bulunmaktadır.

Lisans Karmaşıklığı

ABCpdf, gezinmek için çaba gerektirebilecek kademeli bir lisansı model kullanır. Standart Tek Bilgisayar lisansı 329$ (yalnızca 32-bit); Profesyonel 479$; Profesyonel Yeniden Dağıtım 4.790$; Grup Lisansı 33.530$'ya kadar çıkıyor. Lisanslar süresizdir ve v13 anahtarları v8–v12'yi de kapsar. Birçok geliştirici, projeler için bütçeleme yaparken bu kademeli labirentin önemli bir idari yük olduğunu bildiriyor.

Windows-Öncelikli Mimari (v13'e kadar)

ABCpdf, tarihinin çoğunda sadece Windows içindi. Linux desteği v13'te ABCpdf.ABCChrome117.Linux ve ABCpdf.ABCChrome123.Linux çalışma zamanı paketleri aracılığıyla eklendi. macOS desteklenmiyor ve birkaç Windows'a özgü özellik (XPS, WPF) Linux'te kullanılamaz durumda.

Belge Tarzı

ABCpdf'nin dokümantasyonu, ayrıntılı olsa da, modern API dokümantasyon standartlarına kıyasla eskimiş bir stil izler. Yeni kullanıcılar genellikle ihtiyaç duydukları tam örnekleri bulmakta zorlanır, özellikle daha yeni .NET sürümleriyle çalışırken.

Motor Yapılandırma Aşırı Yükü

ABCpdf, explicit motor seçimi gerektirir — EngineType.Chrome123 (v13'te varsayılan), Chrome117, Chrome86, Chrome65, Gecko, WebKit veya MSHtml — ve doc.Clear() çağrıları ile manuel kaynak yönetimi. Bu, her PDF işlemine, modern geliştiricilerin kaçınmayı tercih edeceği şablon kodunu ekler.

##IronPDF vs ABCpdf: Özellik Karşılaştırması

Aşağıdaki karşılaştırma tablosu, bu iki .NET PDF kütüphanesi arasındaki temel farklılıkları vurgulamaktadır:

ÖzellikABCpdf for .NETIronPDF
Render MotoruABCChrome (Chrome123/117/86/65), Gecko, WebKit, MSHtmlTam Chromium (CSS3, JavaScript)
Çapraz PlatformWindows-öncelikli; Linux v13'te eklendi (macOS yok)Yerel Windows, Linux, macOS, Docker
Lisanslama ModeliStandart 329$ / Pro 479$ / Pro Yeniden Dağıtım 4.790$ / Grup 33.530$, süresizBasit, şeffaf fiyatlandırma
.NET Desteği.NET Framework 4.0+, .NET Core 3.0+, .NET 5+Framework 4.6.2'den .NET 9'a kadar
Kaynak YönetimiManuel doc.Clear() gerekliusing ifadeleri ile IDisposable
Lisans KurulumuGenellikle kayıt defteri kullanılırBasit kod tabanlı lisans anahtarı
DokümantasyonEskimiş tarzKapsamlı örneklerle modern dokümanlar

Geçişe Başlamadan Önce

Ön Koşullar

Geliştirme ortamınızın bu gereksinimleri karşıladığından emin olun:

  • .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5-9
  • Visual Studio 2019+ veya JetBrains Rider
  • NuGet Package Manager erişimi
  • IronPDF lisans anahtarı (ücretsiz deneme mevcut)

Tüm ABCpdf Referanslarını Bulun

.NET için ABCpdf kullanan tüm dosyaları bulmak için çözüm dizininizde bu komutları çalıştırın:

grep -r "using WebSupergoo" --include="*.cs" .
grep -r "ABCpdf" --include="*.csproj" .
SHELL

Bu denetim, herhangi bir değişiklik gerektiren her dosyayı tanımlar ve eksiksiz geçiş kapsamı sağlar.

Beklenebilecek Kırıcı Değişiklikler

.NET için ABCpdf ile IronPDF arasındaki mimari farklılıkları anlamak, geçiş sırasında sürprizleri önler:

KategoriABCpdf DavranışıIronPDF DavranışıGeçiş Eylemi
Nesne ModeliDoc sınıfı merkeziChromePdfRenderer + PdfDocumentDökümantasyondan rendering'i ayırın
Kaynak TemizliğiManuel doc.Clear()IDisposable deseniusing ifadelerini kullanın
Motor Seçimidoc.HtmlOptions.Engine = EngineType.Chrome123 (veya MSHtml)Yerleşik Chromiummotor yapılandırmayı kaldırın
Sayfa İçin Dizimleme1-tabanlı (doc.Page = 1)0-tabanlı (pdf.Pages[0])dizimleme referanslarını ayarlayın
Koordinatlardoc.Rect ile nokta bazlıCSS-tabanlı kenar boşluklarıCSS veya RenderingOptions kullanın

Hızlı Başlangıç: 5 Dakikalık Geçiş

1. Adım: NuGet Paketlerini Güncelleyin

# Remove ABCpdf
dotnet remove package ABCpdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Adım 2: Lisans Anahtarınızı Ayarlayın

Bunu uygulama başlangıcında ekleyin, herhangi bir IronPDF işlemi öncesinde:

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

Adım 3: Küresel Bul ve Değiştir

Tüm kod tabanınızdaki ad alanı referanslarını güncelleyin:

BulBununla Değiştir
using WebSupergoo.ABCpdf13;using IronPdf;
using WebSupergoo.ABCpdf13.Objects;using IronPdf;
using WebSupergoo.ABCpdf12;using IronPdf;
using WebSupergoo.ABCpdf11;using IronPdf;

Tam API Referansı

Belge Oluşturma Yöntemleri

Aşağıdaki tablo,ABCpdf for .NETyöntemlerini IronPDF eşdeğerlerine haritalar:

ABCpdf YöntemiIronPDF Yöntemi
new Doc()new ChromePdfRenderer()
doc.AddImageUrl(url)renderer.RenderUrlAsPdf(url)
doc.AddImageHtml(html)renderer.RenderHtmlAsPdf(html)
doc.AddImageFile(path)renderer.RenderHtmlFileAsPdf(path)
doc.Read(path)PdfDocument.FromFile(path)
doc.Save(path)pdf.SaveAs(path)
doc.GetData()pdf.BinaryData
doc.Clear()using ifadesini kullanın

Sayfa Manipülasyon Yöntemleri

ABCpdf YöntemiIronPDF Yöntemi
doc.PageCountpdf.PageCount
doc.Page = npdf.Pages[n-1]
doc.Delete(pageId)pdf.RemovePages(index)
doc.Append(otherDoc)PdfDocument.Merge(pdf1, pdf2)
doc.Rect.Inset(x, y)RenderingOptions.MarginTop/Bottom/Left/Right

Güvenlik ve Şifreleme Yöntemleri

ABCpdf YöntemiIronPDF Yöntemi
doc.Encryption.Passwordpdf.SecuritySettings.OwnerPassword
doc.Encryption.CanPrintpdf.SecuritySettings.AllowUserPrinting
doc.Encryption.CanCopypdf.SecuritySettings.AllowUserCopyPasteContent
doc.SetInfo("Title", value)pdf.MetaData.Title

Kod Göç Örnekleri

Örnek 1: URL'den PDF'e HTML

Bu örnek, bir web sayfasını PDF'e dönüştürmeyi gösterir, en yaygın PDF üretim görevlerinden biri.

ABCpdf .NET için Uygulaması:

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome123;
        doc.AddImageUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Clear();
    }
}

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");
    }
}

IronPDF'nin yaklașımı, açık motor yapılandırması ve manuel temizliği gerektirmez, kod karmaşıklığını azaltırken tam Chrome renderleme yeteneklerini korur.

Örnek 2: HTML Dizgisi'nden PDF'e

HTML dizgilerini PDF'e dönüştürmek, dinamik raporlar ve belgeler oluşturmak için esastır.

ABCpdf .NET için Uygulaması:

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome123;
        doc.AddImageHtml(html);
        doc.Save("output.pdf");
        doc.Clear();
    }
}

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}

IronPDF sürümü, daha az satır kod gerektirir ve Chrome renderleme varsayılanı olarak kullanılır, bu da tüm platformlarda tutarlı çıktı sağlar.

Örnek 3: Birden Çok PDF'i Birleştir

Birden çok PDF belgesini birleştirmek, belge işleme iş akışlarında sıkça karşılaşılan bir gerekliliktir.

ABCpdf .NET için Uygulaması:

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc1 = new Doc();
        doc1.Read("document1.pdf");
        
        Doc doc2 = new Doc();
        doc2.Read("document2.pdf");
        
        doc1.Append(doc2);
        doc1.Save("merged.pdf");
        
        doc1.Clear();
        doc2.Clear();
    }
}

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

IronPDF'in statik Merge metodu, çok doküman kabul eden daha temiz bir API sağlar ve bireysel Doc örneklerini izleme ve temizleme gereğini ortadan kaldırır.

Örnek 4: Kenar Boşlukları ile Tam Göç Örneği

Bu örnek, özel kenar boşlukları ile PDF oluşturmak için tam bir önce/sonra göçünü gösterir.

Öncesi (ABCpdf .NET için):

using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

public byte[] GeneratePdf(string html)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome123;
    doc.Rect.Inset(20, 20);
    doc.AddImageHtml(html);
    byte[] data = doc.GetData();
    doc.Clear();  // Manual cleanup required
    return data;
}

Sonrası (IronPDF):

using IronPdf;

public byte[] GeneratePdf(string html)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 20;
    renderer.RenderingOptions.MarginBottom = 20;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    using var pdf = renderer.RenderHtmlAsPdf(html);
    return pdf.BinaryData;  // Automatic cleanup with 'using'
}

İleri Göç Senaryoları

ASP.NET Core Web Uygulaması

.NET 6+ ile web uygulamaları geliştiren ekipler için önerilen model şudur:

ABCpdf Deseni:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome123;
    doc.AddImageHtml(request.Html);
    byte[] pdfBytes = doc.GetData();
    doc.Clear();

    return File(pdfBytes, "application/pdf", "report.pdf");
}

IronPDF Deseni:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(request.Html);

    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}

Asenkron PDF Oluşturma

ABCpdf'nin yerel asenkron desteği yoktur. IronPDF, daha iyi web uygulama performansı için asenkron yöntemler sunar:

using IronPdf;

public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}

Bağımlılık Enjeksiyonu Kurulumu

Mevcut C# modellerini kullanarak modern .NET uygulamalarında IronPDF'yi kaydedin:

// Program.cs (.NET 6+)
builder.Services.AddSingleton<ChromePdfRenderer>();

// Or create a service wrapper
public interface IPdfService
{
    Task<byte[]> GeneratePdfAsync(string html);
}

public class IronPdfService : IPdfService
{
    private readonly ChromePdfRenderer _renderer;

    public IronPdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        using var pdf = await _renderer.RenderHtmlAsPdfAsync(html);
        return pdf.BinaryData;
    }
}

// Register: builder.Services.AddSingleton<IPdfService, IronPdfService>();

Performans Optimizasyon İpuçları

Toplu İşlemler için Renderlayıcıyı Yeniden Kullanın

// Good: Single renderer instance
var renderer = new ChromePdfRenderer();
foreach (var html in htmlList)
{
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

// Bad: New renderer each time (slower startup)
foreach (var html in htmlList)
{
    var renderer = new ChromePdfRenderer(); // Overhead!
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

Bellek Kullanımı Karşılaştırması

SenaryoABCpdf for .NETIronPDF
Tek 10 sayfalık PDF~80 MB~50 MB
Toplu 100 PDFYüksek (manuel temizleme)~100 MB
Büyük HTML (5MB+)Değişken~150 MB

Yaygın Göç Sorunlarını Giderme

PDF Boş Görünüyor

Belirti: Göçten sonra çıktı PDF'in boş sayfaları var.

Çözüm: JavaScript içeriği renderleme öncesi tamamen yüklenmemiş olabilir:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
// Or wait for specific element:
renderer.RenderingOptions.WaitFor.HtmlElementById("content-loaded");

Üstbilgi/Altbilgiler Görünmüyor

Belirti: TextHeader/TextFooter çıktı dosyasında görünmüyor.

Çözüm: Kenar boşluklarının üstbilgi/altbilgi içeriği için boşluk bıraktığından emin olun:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40; // mm - leave room for header
renderer.RenderingOptions.MarginBottom = 40; // mm - leave room for footer

renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Header Text",
    FontSize = 12
};

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Tüm ABCpdf kullanımını grep -r "WebSupergoo" --include="*.cs" . ile denetleyin
  • Mevcut PDF çıktısı gereksinimlerini belgeleyin
  • Karşılaştırma için örnek PDF çıktıları ile test vakaları oluşturun
  • IronPDF lisans anahtarı edinin
  • Kod tabanını yedekleyin

Göç Sırasında

  • ABCpdf NuGet paketini kaldırın -IronPDF NuGet paketini yükleyin
  • Lisans anahtarını uygulama başlangıcına ekleyin
  • Tüm using ifadelerini güncelleyin
  • Doc oluşturmasını ChromePdfRenderer'a dönüştürün
  • doc.Clear() ifadesini using ifadeleri ile değiştirin
  • API haritalamasına göre yöntem çağrılarını güncelleyin
  • Koordinat tabanlı düzenleri CSS kenar boşluklarına dönüştürün

Geçiş Sonrası

  • Tüm mevcut PDF testlerini çalıştırın
  • PDF çıktılarının görsel karşılaştırması (ABCpdf vs IronPDF)
  • Test ortamında tüm PDF iş akışlarını test edin
  • Performans benchmark karşılaştırması
  • ABCpdf lisans yapılandırmasını kaldırın
  • CI/CD boru hattı bağımlılıklarını güncelleyin
Lütfen dikkate alın: ABCpdf kendi sahibi tarafından tescilli bir markadır. Bu site, WebSupergoo Software ile bağlantılı veya onun tarafından desteklenen ya da sponsor olunan bir site 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