IRONSOFTWAREHOME
VIDEOLAR

C# Kullanarak Girişler ve Kimlik Doğrulama Yönetimi

Curtis Chau
Curtis Chau
Updated: 18 Mayıs 2026

Kolay PDF SDK'nın orijinal yayıncısı olan BCL Technologies, 2020 Mart ayında Apryse (eski adıyla PDFTron) tarafından satın alındı ve ürün, Apryse PDF SDK'nın yanında bir miras SDK olarak konumlandırıldı. SDK, modern geliştirme ortamlarında dağıtım ve bakım zorlukları yaratan birkaç eski teknolojiye dayanır.

YaygınEasy PDF SDKDağıtım Sorunları

GeliştiricilerEasy PDF SDKile çalışırken bu sorunlarla sık sık karşılaşır:

  • bcl.easypdf.interop.easypdfprinter.dll error loading
  • COM object that has been separated from its underlying RCW cannot be used
  • Timeout expired waiting for print job to complete
  • The printer operation failed because the service is not running
  • Error: Access denied (etkileşimli oturum gerekli)
  • Cannot find printer: BCL easyPDF Printer

Bu hatalar genellikle Easy PDF SDK'nın, sanal yazıcı sürücülerine, COM interop ve modern sunucu ortamlarında tekrarlanması zor olan etkileşimli Windows oturumlarına dayanan mimarisinden kaynaklanır.

###Easy PDF SDKile IronPDF: Temel Farklar

ÖzellikEasy PDF SDKIronPDF
PlatformSadece WindowsWindows, Linux, macOS, Docker
Office BağımlılığıGereklidirNone
DağıtımMSI yükleyici + manuel DLL başvuruları (NuGet paketi yok)NuGet paketi (IronPdf)
KurulumMSI + sanal yazıcı sürücüsü + COM kaydıNuGet paketi
Sunucu DesteğiGenellikle etkileşimli bir Windows oturumu gerektirirBaşsız çalışır
HTML İşlemeTemel (Office tabanlı)Tam Chromium (CSS3, JS)
.NET DesteğiSınırlı .NET Core.NET Framework 4.6.2+ ve .NET 5/6/7/8/9
Async PatternGeri çağrı tabanlıYerel async/await
Kapsayıcı DesteğiSatıcı tarafından desteklenmiyorTam Docker/Kubernetes

Platform Sınırlamaları

Easy PDF SDK Windows'u hedefliyor ve Office belge dönüştürmeleri için Microsoft Office yüklemelerine dayanıyor, bu da kullanımını Linux, macOS ve Docker gibi konteyner tabanlı ortamlarda sınırlıyor. Bu bağımlılık, sunucu kurulumlarını daha karmaşık hale getirme eğilimindedir ve dağıtımı Windows'a bağlar — çok platformlu DevOps uygulayan veya Linux konteynerlerine dayanan ekipler için bir kısıtlamadır.

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)

###Easy PDF SDKKullanımını Denetleme

Çözüm dizininde bu komutları çalıştırarak tümEasy PDF SDKreferanslarını belirleyin:

# Find all BCL using statements
grep -r "using BCL" --include="*.cs" .

# Find Printer/PDFDocument usage
grep -r "Printer\|PDFDocument\|PDFConverter\|HTMLConverter" --include="*.cs" .

# Find COM interop references
grep -r "easyPDF\|BCL.easyPDF" --include="*.csproj" .

# Find configuration settings
grep -r "PageOrientation\|TimeOut\|PrintOffice" --include="*.cs" .
SHELL

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

Easy PDF SDK DeseniDeğişiklik Gerekli
new Printer()ChromePdfRenderer kullan
PrintOfficeDocToPDF()Ofis dönüşümü farklı şekilde ele alınır
RenderHTMLToPDF()RenderHtmlAsPdf()
COM etkileşim referanslarıTamamen kaldır
Yazıcı sürücü yapılandırmasıGerekli değil
BeginPrintToFile() geri aramalarıYerel async/await
Etkileşimli oturum gereksinimleriBaşsız çalışır
1-tabanlı sayfa dizinleme0 tabanlı indeksleme
Zaman aşımı saniye cinsindendirZaman aşımı milisaniye cinsindendir

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

Adım 1:Easy PDF SDKKaldırma

Easy PDF SDK, bir NuGet paketi yerine bir MSI yükleyicisi olarak dağıtılır ve projeler genellikle doğrudan derlemelerine (örneğin, .NET Framework için BCL.easyPDF.PDFConverter.dll veya .NET Core için BCL.easyPDF.PDFConverter.NetCore.dll) referans verir. Tüm referansları kaldırın:

  1. Programlar ve Özellikler'den BCL EasyPDF SDK'yı kaldırın
  2. DLL <Reference> girişlerini .csproj adresinden kaldırın
  3. COM etkileşim referanslarını kaldırın
  4. Bulunuyorsa GAC girişlerini temizleyin

Adım 2:IronPDF Yükleme

# Install IronPDF
dotnet add package IronPdf
SHELL

Veya Paket Yöneticisi Konsolu aracılığıyla:

PM > Install-Package IronPdf

3. Adım: Ad Alanı Referanslarını Güncelle

Easy PDF SDK ad alanlarınıIronPDF ile değiştirin:

// Remove these
using BCL.easyPDF;
using BCL.easyPDF.PDFConverter;
using BCL.easyPDF.PDFProcessor;
using BCL.easyPDF.Printer;

// Add these
using IronPdf;
using IronPdf.Rendering;

Tam API Geçiş Referansı

Temel Sınıf Eşlemeleri

Easy PDF SDK SınıfıIronPDF Eşdeğeri
PrinterChromePdfRenderer
PDFDocumentPdfDocument
HTMLConverterChromePdfRenderer
PrinterConfigurationChromePdfRenderOptions
PageOrientationPdfPaperOrientation
PageSizePdfPaperSize
SecurityHandlerPdfDocument.SecuritySettings

PDF Oluşturma Yöntemleri

Easy PDF SDK YöntemiIronPDF Yöntemi
printer.RenderHTMLToPDF(html, path)renderer.RenderHtmlAsPdf(html).SaveAs(path)
printer.RenderUrlToPDF(url, path)renderer.RenderUrlAsPdf(url).SaveAs(path)
htmlConverter.ConvertHTML(html, doc)renderer.RenderHtmlAsPdf(html)
htmlConverter.ConvertURL(url, doc)renderer.RenderUrlAsPdf(url)

PDF Manipülasyon Yöntemleri

Easy PDF SDK YöntemiIronPDF Yöntemi
doc.Append(doc2)PdfDocument.Merge(pdf1, pdf2)
doc.ExtractPages(start, end)pdf.CopyPages(start, end)
doc.DeletePage(index)pdf.RemovePages(index)
doc.GetPageCount()pdf.PageCount
doc.Save(path)pdf.SaveAs(path)
doc.Close()pdf.Dispose() veya using
doc.ExtractText()pdf.ExtractAllText()

Yapılandırma Seçenekleri

Easy PDF SDK SeçeneğiIronPDF Seçeneği
config.TimeOutRenderingOptions.Timeout
config.PageOrientation = LandscapeRenderingOptions.PaperOrientation = Landscape
config.PageSize = A4RenderingOptions.PaperSize = PdfPaperSize.A4
config.MarginTop/Bottom/Left/RightRenderingOptions.MarginTop, vb.

Kod Göç Örnekleri

HTML Dizgisini PDF'e Dönüştürme

Easy PDF SDK Uygulaması:

// Reference BCL.easyPDF.PDFConverter.dll (or the .NetCore variant)
// installed by the easyPDF SDK MSI — there is no NuGet package.
using BCL.easyPDF;
using System;

class Program
{
    static void Main()
    {
        var pdf = new PDFDocument();
        var htmlConverter = new HTMLConverter();
        htmlConverter.ConvertHTML("<h1>Hello World</h1>", pdf);
        pdf.Save("output.pdf");
        pdf.Close();
    }
}

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        pdf.SaveAs("output.pdf");
    }
}

IronPDF, HTML renderlemesini tek bir renderleyici çağrısına katlar ve Dispose ile temizlemeyi sağlar, ayrı HTMLConverter adımını ve manuel Close() desenini kaldırır.

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

Easy PDF SDK Uygulaması:

// Reference BCL.easyPDF.PDFConverter.dll (or the .NetCore variant)
// installed by the easyPDF SDK MSI — there is no NuGet package.
using BCL.easyPDF;
using System;

class Program
{
    static void Main()
    {
        var pdf = new PDFDocument();
        var htmlConverter = new HTMLConverter();
        htmlConverter.ConvertURL("https://example.com", pdf);
        pdf.Save("webpage.pdf");
        pdf.Close();
    }
}

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}

Birden Fazla PDF'yi Birleştirme

Easy PDF SDK Uygulaması:

// Reference BCL.easyPDF.PDFConverter.dll (or the .NetCore variant)
// installed by the easyPDF SDK MSI — there is no NuGet package.
using BCL.easyPDF;
using System;

class Program
{
    static void Main()
    {
        var pdf1 = new PDFDocument("document1.pdf");
        var pdf2 = new PDFDocument("document2.pdf");
        pdf1.Append(pdf2);
        pdf1.Save("merged.pdf");
        pdf1.Close();
        pdf2.Close();
    }
}

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
    }
}

IronPDF'nin statik Merge metodu, çiftli Append desenini değiştirerek doğrudan bir belge koleksiyonu kabul eder.

Şifre Koruma

IronPDF Uygulaması:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;

pdf.SaveAs("protected.pdf");

Başlıklar ve Altbilgiler

Easy PDF SDK, HTML dönüşüm yolunda ayrılmış başlık/altbilgi API'leri sunmaz; başlıklar ve altbilgiler genellikle doğrudan kaynak HTML'e gömülür.IronPDF ayrılmış başlık/altbilgi nesneleri sağlar:

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:12px; font-family:Arial;'>
            Company Name - Confidential
        </div>",
    DrawDividerLine = true,
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true,
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Content</h1>");
pdf.SaveAs("with_headers.pdf");

Daha fazla seçenek için başlıklar ve altbilgiler belgelerine bakın.

Asenkron PDF Oluşturma

Easy PDF SDK geri çağrı tabanlı asenkron desenler kullanır.IronPDF yerel async/await'i destekler:

Easy PDF SDK Uygulaması:

using BCL.easyPDF;

Printer printer = new Printer();

// BCL uses callback-based async
printer.BeginPrintToFile(
    "https://example.com",
    "output.pdf",
    OnPrintComplete,
    OnPrintError
);

Console.ReadLine();
printer.Dispose();

IronPDF Uygulaması:

using IronPdf;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var renderer = new ChromePdfRenderer();

        // Native async/await
        var pdf = await renderer.RenderUrlAsPdfAsync("https://example.com");
        await pdf.SaveAsAsync("output.pdf");

        Console.WriteLine("PDF created: output.pdf");
    }
}

Kritik Taşıma Notları

Sayfa İndeksi Değişikliği

Easy PDF SDK 1 tabanlı indekslemeyi kullanır.IronPDF 0-tabanlı dizinleme kullanır:

// Easy PDF SDK: 1-based
doc.ExtractPages(1, 5);

// IronPDF: 0-based
pdf.CopyPages(0, 4);

Milisaniyelerde Zaman Aşımı

Easy PDF SDK, zaman aşımı değerleri için saniyeleri kullanır.IronPDF milisaniyeleri kullanır:

// Easy PDF SDK: seconds
config.TimeOut = 120;

// IronPDF: milliseconds
renderer.RenderingOptions.Timeout = 120000;

ASP.NET Core Integration

Easy PDF SDK, etkileşimli oturum gereksinimleri nedeniyle web bağlamında zorluk yaşar.

IronPDF Deseni:

[ApiController]
[Route("[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate")]
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>");

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

    [HttpGet("generate-async")]
    public async Task<IActionResult> GeneratePdfAsync()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>");

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

Docker Dağıtımı

Easy PDF SDK, Linux konteynerleri için tasarlanmamıştır — desteklenen yapılandırması Windows, Microsoft Office, bir sanal yazıcı sürücüsü ve (çoğu kurulumda) bir etkileşimli masaüstü oturumuyla sınırlıdır, bu da tipik Linux tabanlı Docker iş akışlarını uygulamayı zorlaştırır.

IronPDF Docker Yapılandırması:

FROM mcr.microsoft.com/dotnet/aspnet:8.0

# Install Chromium dependencies
RUN apt-get update && apt-get install -y \
    libc6 libgdiplus libx11-6 libxcomposite1 \
    libxdamage1 libxrandr2 libxss1 libxtst6 \
    libnss3 libatk-bridge2.0-0 libgtk-3-0 \
    libgbm1 libasound2 fonts-liberation \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "MyApp.dll"]
Text

Yaygın Göç Sorunlarını Giderme

Sorun: Yazıcı Bulunamadı

Belirti: Cannot find printer: BCL easyPDF Printer

**Çözüm:**IronPDF yazıcı sürücülerine ihtiyaç duymaz:

// Just use the renderer directly
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);

Sorun: COM Etkileşim Hataları

Belirti: DLL error loading veya RCW hataları

Çözüm: Tüm COM referanslarını kaldırın ve IronPDF'nin yönetilen API'sini kullanın.

Sorun: Sunucuda Zaman Aşımı

Belirti: PDF oluşturma web sunucusunda takılıp kalır

**Çözüm:**IronPDF etkileşimli oturumlar olmadan başsız çalışır:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.Timeout = 60000; // Reliable timeout
var pdf = renderer.RenderHtmlAsPdf(html);

Sorun: Arka Plan Yazdırılmıyor

Belirti: CSS arka planları eksik

Çözüm: Arka plan yazdırmayı etkinleştirin:

renderer.RenderingOptions.PrintHtmlBackgrounds = true;

Taşınma Sonrası Kontrollistesi

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

  • IronPDF'nin Krom motoruyla PDF çıktısının kalitesini doğrulayın
  • Karmaşık HTML/CSS ile tüm uç vakaları test edin
  • Etkileşimli oturumlar olmadan sunucu dağıtımının çalıştığını doğrulayın
  • Docker/kapsayıcı dağıtımını test edin
  • Dağıtımdan BCL EasyPDF yükleyicisini kaldırın
  • Sunuculardan Ofis kurulumunu kaldırın (artık gerekli değil)
  • Yeni NuGet paketi ile CI/CD hatlarını güncelleyin

Ek Kaynaklar


Easy PDF SDK'dan IronPDF'ye geçiş, sanal yazıcı sürücüsünü, COM interop ve PDF üretim yolundaki sadece Windows'a sınırlamaları ortadan kaldırır. Chromium tabanlı render, modern CSS3 ve JavaScript desteği sunar ve aynı kod tabanı, easyPDF SDK'nın desteklediği dağıtım modelini hedeflemenin zor olduğu Docker, Kubernetes ve Linux tabanlı bulut ortamlarında çalışır.

Lütfen dikkate alın: BCL easyPDF SDK,Easy PDF SDKve Apryse, kendi sahiplerinin tescilli markalarıdır. Bu site, BCL Technologies veya Apryse 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