IRONSOFTWAREHOME
VIDEOLAR

PDF'lere Çizgiler ve Dikdörtgenler Çizmek

Curtis Chau
Curtis Chau
Updated: 18 Mayıs 2026

Adobe PDF Library SDK (APDFL), Datalogics tarafından Adobe'dan lisanslı olarak dağıtılır ve Acrobat motoru ile temel kaynak kodunu paylaşır. Güçlüdür, ancak satış odaklı fiyatlandırma modeli, yerel çalışma zamanı ayak izi, yerleşik HTML'den PDF renderleyicisinin eksikliği ve düşük seviyeli API tasarımı birçok .NET ekibi için alternatiflerinin denenmesine neden olur. Bu rehber, Adobe PDF Library SDK'dan IronPDF'ye geçiş için adım adım bir yol sunar—.NET Framework 4.6.2'den .NET 9'a kadar destekleyen modern bir .NET PDF kütüphanesi.

Neden Adobe PDF Library SDK'dan Uzaklaşmayı Düşünmelisiniz?

APDFL, Acrobat türevli PDF motorunu sunarken, birden çok faktör, geliştirme ekiplerini HTML'den PDF'ye, belge manipülasyonuna ve rapor oluşturmaya alternatifler aramaya yönlendirir.

Satış Odaklı, Özel Fiyatlandırma

Datalogics, APDFL için liste fiyatı yayınlamaz. Datalogics'in fiyatlandırma sayfalarına göre, dahili kullanım planları yılda yaklaşık 5.999 $'dan başlar ve OEM, ISV ve SaaS dağıtımları, platform başına ücretler ve telif veya gelir paylaşımını müzakere eder. Toplam maliyet genellikle küçük ve orta ölçekli ekiplerin ötesindedir ve neredeyse her zaman bir satış görüşmesi gerektirir.

Karmaşık Yerel SDK Entegrasyonu

APDFL, Acrobat ile soy bağı paylaşan bir yerel C/C++ motorunu sarmalar. .NET bağlama (Datalogics.PDFL) platforma özgü çalışma zamanı ikili dosyalarını gerektirir — Adobe.PDF.Library.LM.NET NuGet paketi, x64 Windows, Linux ve macOS ARM yüklerini gönderir — dikkatli bellek yönetimi ve her giriş noktasında açık bir Library yaşam döngüsü. Bu durum, geliştirme yükünü artırır ve CI/CD hatlarını karmaşık hale getirir.

Yerleşik Bir HTML Renderleyicisi Yok

APDFL'nin belgelenmiş dönüşüm listesi PDF/A, PDF/X, ZUGFeRD, EPS, PS, XPS ve Office formatlarını kapsar, ancak HTML yoktur. Tek başına APDFL ile bir HTML dizesinden PDF oluşturmak, sayfaları, yazı tiplerini ve içerik çalıştırmalarını elle oluşturmayı veya dosya yolları yerine bellekteki dizelerden WebGrabber renderlayıcı ile APDFL'yi birleştirmeyi gerektirir.

Düşük Seviyeli API Tasarımı

APDFL ile PDF oluşturmak, sayfaları, içerik akışlarını, metin çalıştırmalarını ve yazı tiplerini programatik olarak oluşturmaktan geçer. HTML dizesini renderlamak gibi basit görevler, koordinat hesaplamalarını, yazı tipi gömme ve manuel içerik öğesi yönetimini içeren çok adımlı işlemler haline gelir.

Kütüphane Yaşam Döngüsü Yönetimi Yükü

Her giriş noktası, oluşturulan her PDF nesnesinin dikkatlice yok edilmesiyle birlikte using (var lib = new Library()) (veya eşleştirilmiş Library.Initialize() / Library.Terminate() çağrıları) içinde sarılan kod gerektirir. Kaçırılan temizlik kaynak sızıntılarına neden olabilir.

Birçok Proje İçin Aşırı

Başlıca HTML'den PDF'ye dönüştürme, temel belge manipülasyonu veya rapor oluşturma gerektiren uygulamalar için, tam Acrobat türevli motor genellikle gereken iş yükünden fazladır.

##Adobe PDF Library SDKvs. IronPDF: Anahtar Farklılıklar

Bu kütüphaneler arasındaki temel mimari farkları anlamak, etkili bir geçiş stratejisi planlamaya yardımcı olur.

AspektAdobe PDF Library SDKIronPDF
FiyatlandırmaSatış odaklı; dahili kullanım ~5.999 $/yıl'dan başlar, OEM/SaaS telifleri de üstüne eklenirŞeffaf geliştirici başına / dağıtım başına
KurulumAdobe.PDF.Library.LM.NET, platform başına yerel çalışma zamanlarını gönderir.Simple NuGet package
Belge OluşturmaDüşük seviyeli sayfa/içerik inşasıHTML/CSS renderlemesi
HTML'den PDF'yeDahili değilChromePdfRenderer.RenderHtmlAsPdf
Başlatmausing (Library lib = new Library()) gerekliOtomatik
Koordinat SistemiPostScript noktaları, alt-sol başlangıçCSS bazlı düzen
Yazı Tipi İşlemeManuel gömme gereklidirOtomatik
Bellek YönetimiHer PDF nesnesi manuel olarak temizlenirStandart IDisposable deseni
Asenkron DestekMevcut değilTam async/await desteği

Migration'a Ön Hazırlık

Ön Koşullar

Geçişe başlamadan önce ortamınızın bu gereklilikleri karşıladığından emin olun:

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

###Adobe PDF Library SDKKullanımını Denetleme

Çözüm dizininizdeAdobe PDF Library SDKreferanslarını belirlemek için bu komutları çalıştırın:

grep -r "using Datalogics" --include="*.cs" .
grep -r "Adobe.PDF.Library" --include="*.csproj" .
grep -r "Library.Initialize\|Library.Terminate" --include="*.cs" .
SHELL

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

KategoriAdobe PDF Library SDKIronPDFGeçiş Eylemi
BaşlatmaLibrary.Initialize() / Terminate()OtomatikYaşam döngüsü kodunu kaldırın
Belge Oluşturmasayfa yapılandırması ile new Document()ChromePdfRendererHTML işleme kullanın
Koordinat SistemiPostScript noktaları, alt-sol başlangıçCSS bazlı düzenHTML/CSS kullanın
Yazı Tipi YönetimiManuel Font oluşturma ve yerleştirmeOtomatikYazı tipi kodunu kaldırın
Bellek YönetimiCOM nesnelerin manuel atılmasıStandart IDisposableusing ifadelerini kullanın
Sayfa OluşturmaCreatePage(), AddContent()HTML'den otomatikÖnemli ölçüde basitleştirin

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

1. Adım: NuGet Paketlerini Güncelleyin

Adobe PDF Library SDK paketini kaldırın ve IronPDF yükleyin:

# Remove Adobe PDF Library (.NET 6/7/8 projects)
dotnet remove package Adobe.PDF.Library.LM.NET
# .NET Framework projects use the LM.NETFramework variant
dotnet remove package Adobe.PDF.Library.LM.NETFramework

# Install IronPDF
dotnet add package IronPdf
SHELL

2. Adım: Lisans Anahtarını Yapılandırma

Adobe'nin lisanslamasını IronPDF'un kod tabanlı lisans anahtarı ile değiştirin:

// Replace Adobe's Library.LicenseKey with IronPDF license
// Add at application startup, before any IronPDF operations
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Verify license status
bool isLicensed = IronPdf.License.IsLicensed;

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

Çözümünüz genelinde küresel bir bul ve değiştir yapın:

BulBununla Değiştir
using Datalogics.PDFL;using IronPdf;

APDFL, tek bir kök ad alanı olan Datalogics.PDFL'yı ortaya çıkarır. Document, Page, Content, Font ve Color bu ad alanı içindeki tüm sınıflardır, bu yüzden sadece bir using direktifi değiştirilmesi gereklidir.

Adım 4: Kütüphane Yaşam Döngüsü Kodunu Kaldırma

En önemli basitleştirmelerden biri, başlatma ve sonlandırma desenlerini kaldırmaktır:

//Adobe PDF Library SDK- REMOVE THIS PATTERN
Library.Initialize();
try
{
    // PDF operations
}
finally
{
    Library.Terminate(); // Must always terminate
}

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

Tam API Geçiş Referansı

Kütüphane Yaşam Döngüsü Yöntemleri

Adobe YöntemiIronPDF Eşdeğeri
Library.Initialize()Gerekli değil
Library.Terminate()Gerekli değil
Library.LicenseKey = "KEY"IronPdf.License.LicenseKey = "KEY"
using (Library lib = new Library())Gerekli değil

Belge Oluşturma Yöntemleri

Adobe YöntemiIronPDF Yöntemi
new Document()new ChromePdfRenderer()
new Document(path)PdfDocument.FromFile(path)
doc.CreatePage(index, rect)HTML'den otomatik
doc.Save(SaveFlags.Full, path)pdf.SaveAs(path)
doc.NumPagespdf.PageCount
doc.GetPage(index)pdf.Pages[index]
doc.InsertPages(insertAfter, src, start, count, flags)PdfDocument.Merge(pdfs)

İçerik Oluşturma (Ana Paradigma Değişikliği)

Adobe PDF Library SDK, düşük seviyeli içerik oluşturma gerektirir.IronPDF HTML/CSS kullanır:

Adobe YöntemiIronPDF Yöntemi
new Text()HTML <p>, <h1>, vb. kullanın
text.AddRun(textRun)HTML kullanın
new TextRun(text, font, size, point)CSS stillendirme
new Font(name, flags)CSS font-family
new Image(path)HTML <img> etiketi
content.AddElement(...)HTML içeriği
page.UpdateContent()Gerekli değil

Filigran ve Güvenlik Yöntemleri

Adobe YöntemiIronPDF Yöntemi
doc.Watermark(textParams, wmParams)pdf.ApplyWatermark(html)
WatermarkParams.Opacity (0.0-1.0)opacity parametresi (0-100) veya CSS opacity
new EncryptionHandler(user, owner, perms)pdf.SecuritySettings
PermissionFlags.PrintDocAllowUserPrinting

Metin Çıkarma

Adobe YöntemiIronPDF Yöntemi
new WordFinder(doc, config)pdf.ExtractAllText()
wordFinder.GetWordList()pdf.Pages[i].Text
Karmaşık kelime/karakter yinelemesiTek bir yöntem çağrısı

Kod Göç Örnekleri

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

APDFL, yerleşik bir HTML işleyici içermez. En yakın benzerebilen, bir HTML belgesinin üreteceği düzeni taklit etmek için el ile sayfalar ve içerik çalışmaları oluşturmaktır veya APDFL'yi ayrı bir HTML-to-PDF motoru ile eşleştirmektir.

Adobe PDF Library SDK Uygulaması:

//Adobe PDF Library SDK(Datalogics APDFL)
// NuGet: Adobe.PDF.Library.LM.NET — namespace Datalogics.PDFL
using Datalogics.PDFL;
using System;

class AdobeHtmlToPdf
{
    static void Main()
    {
        using (Library lib = new Library())
        using (Document doc = new Document())
        {
            // US Letter in points (8.5 x 11 inches @ 72 DPI)
            Rect pageRect = new Rect(0, 0, 612, 792);
            using (Page page = doc.CreatePage(Document.BeforeFirstPage, pageRect))
            {
                Content content = page.Content;
                Font font = new Font("Helvetica", FontCreateFlags.Embedded);

                Text text = new Text();
                text.AddRun(new TextRun("Hello World", font, 24, new Point(72, 720)));
                content.AddElement(text);

                page.UpdateContent();
            }

            doc.Save(SaveFlags.Full, "output.pdf");
        }
    }
}
C#

IronPDF Uygulaması:

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

class IronPdfHtmlToPdf
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        
        // Convert HTML to PDF with simple API
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}

IronPDF, kütüphane yaşam döngüsü sarıcısını, dönüşüm parametre nesnelerini ve açık atımı ortadan kaldırır. ChromePdfRenderer, piksel mükemmel CSS ve JavaScript desteği için Chromium tabanlı bir motor kullanır. Gelişmiş senaryolar için bkz. HTML'den PDF'ye belgeleri.

Birden Fazla PDF'yi Birleştirme

PDF birleştirme, API karmaşıklık farkını açıkça gösterir.

Adobe PDF Library SDK Uygulaması:

//Adobe PDF Library SDK(Datalogics APDFL)
using Datalogics.PDFL;
using System;

class AdobeMergePdfs
{
    static void Main()
    {
        using (Library lib = new Library())
        using (Document doc1 = new Document("document1.pdf"))
        using (Document doc2 = new Document("document2.pdf"))
        {
            // InsertPages(insertAfter, sourceDoc, sourceStartPage, pageCount, flags)
            doc1.InsertPages(
                Document.LastPage,
                doc2,
                0,
                Document.AllPages,
                PageInsertFlags.Bookmarks | PageInsertFlags.Threads);

            doc1.Save(SaveFlags.Full, "merged.pdf");
        }
    }
}
C#

IronPDF Uygulaması:

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

class IronPdfMergePdfs
{
    static void Main()
    {
        // Load PDF documents
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        // Merge PDFs with simple method
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

Adobe'nin yaklaşımı, belirli parametrelerle sayfa sayfa yinelemeyi gerektirir. IronPDF, birden fazla belgeyi kabul eden tek bir Merge yöntemi sağlar.

Filigran Ekleme

Filigranlama, IronPDF'un stil esnekliği için HTML/CSS'i nasıl kullandığını gösterir.

Adobe PDF Library SDK Uygulaması:

//Adobe PDF Library SDK(Datalogics APDFL)
using Datalogics.PDFL;
using System;

class AdobeAddWatermark
{
    static void Main()
    {
        using (Library lib = new Library())
        using (Document doc = new Document("input.pdf"))
        {
            WatermarkParams watermarkParams = new WatermarkParams();
            watermarkParams.Opacity = 0.5; // 0.0 - 1.0
            watermarkParams.Rotation = 45.0;
            watermarkParams.Scale = -1; // auto-fit

            WatermarkTextParams textParams = new WatermarkTextParams();
            textParams.Text = "CONFIDENTIAL";
            textParams.Color = new Color(0.8, 0.8, 0.8);
            textParams.TextAlign = HorizontalAlignment.Center;

            // Apply via Document.Watermark(textParams, wmParams)
            doc.Watermark(textParams, watermarkParams);

            doc.Save(SaveFlags.Full, "watermarked.pdf");
        }
    }
}
C#

IronPDF Uygulaması:

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

class IronPdfAddWatermark
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        
        // Apply text watermark with simple API
        pdf.ApplyWatermark("<h1 style='color:red; opacity:0.5;'>CONFIDENTIAL</h1>",
            rotation: 45,
            verticalAlignment: VerticalAlignment.Middle,
            horizontalAlignment: HorizontalAlignment.Center);
        
        pdf.SaveAs("watermarked.pdf");
    }
}

IronPDF'un HTML tabanlı filigranlaması, CSS stili aracılığıyla tam tasarım kontrolü sağlar, ayrı parametre nesnelerine olan ihtiyacı ortadan kaldırır.

Parola Koruma ve Şifreleme

Adobe PDF Library SDK Uygulaması:

using Datalogics.PDFL;

public void ProtectPdf(string inputPath, string outputPath, string password)
{
    Library.Initialize();
    try
    {
        using (Document doc = new Document(inputPath))
        {
            PermissionFlags permissions =
                PermissionFlags.PrintDoc |
                PermissionFlags.PrintFidelity;

            EncryptionHandler encHandler = new EncryptionHandler(
                password,      // User password
                password,      // Owner password
                permissions,
                EncryptionMethod.AES256);

            doc.SetEncryptionHandler(encHandler);
            doc.Save(SaveFlags.Full | SaveFlags.Encrypted, outputPath);
        }
    }
    finally
    {
        Library.Terminate();
    }
}

IronPDF Uygulaması:

using IronPdf;

public void ProtectPdf(string inputPath, string outputPath, string password)
{
    using var pdf = PdfDocument.FromFile(inputPath);

    pdf.SecuritySettings.UserPassword = password;
    pdf.SecuritySettings.OwnerPassword = password;
    pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;
    pdf.SecuritySettings.AllowUserEdits = PdfEditSecurity.NoEdit;

    pdf.SaveAs(outputPath);
}

IronPDF, bitwise izin bayrakları ve şifreleme işleyici nesneleri yerine güçlü-tipli özellikler kullanır.

Metin Çıkarma

Adobe PDF Library SDK Uygulaması:

using Datalogics.PDFL;

public string ExtractText(string pdfPath)
{
    string extractedText = "";

    Library.Initialize();
    try
    {
        using (Document doc = new Document(pdfPath))
        {
            WordFinderConfig config = new WordFinderConfig();
            config.IgnoreCharGaps = true;

            for (int i = 0; i < doc.NumPages; i++)
            {
                using (WordFinder wordFinder = new WordFinder(doc, i, config))
                {
                    IList<Word> words = wordFinder.GetWordList();
                    foreach (Word word in words)
                    {
                        extractedText += word.Text + " ";
                    }
                    extractedText += "\n";
                }
            }
        }
    }
    finally
    {
        Library.Terminate();
    }

    return extractedText;
}

IronPDF Uygulaması:

using IronPdf;

public string ExtractText(string pdfPath)
{
    using var pdf = PdfDocument.FromFile(pdfPath);
    return pdf.ExtractAllText();
}

Adobe'nin kelime kelime yinelemesi,IronPDF ile tek bir yöntem çağrısı haline gelir.

Başlıklar ve Altbilgiler

Adobe PDF Library SDK Uygulaması:

using Datalogics.PDFL;

public void AddHeaderFooter(string inputPath, string outputPath)
{
    Library.Initialize();
    try
    {
        using (Document doc = new Document(inputPath))
        {
            Font font = new Font("Helvetica", FontCreateFlags.None);

            for (int i = 0; i < doc.NumPages; i++)
            {
                using (Page page = doc.GetPage(i))
                {
                    Content content = page.Content;

                    // Add header
                    Text header = new Text();
                    header.AddRun(new TextRun("Document Header",
                        font, 10, new Point(72, page.MediaBox.Top - 36)));
                    content.AddElement(header);

                    // Add footer with page number
                    Text footer = new Text();
                    footer.AddRun(new TextRun($"Page {i + 1} of {doc.NumPages}",
                        font, 10, new Point(72, 36)));
                    content.AddElement(footer);

                    page.UpdateContent();
                }
            }
            doc.Save(SaveFlags.Full, outputPath);
        }
    }
    finally
    {
        Library.Terminate();
    }
}

IronPDF Uygulaması:

using IronPdf;

public void CreatePdfWithHeaderFooter(string html, string outputPath)
{
    var renderer = new ChromePdfRenderer();

    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Document Header",
        FontSize = 10,
        FontFamily = "Helvetica"
    };

    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        FontSize = 10,
        FontFamily = "Helvetica"
    };

    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs(outputPath);
}

IronPDF, sayfa yinelemeyi otomatik olarak yönetir ve {page} ve {total-pages} gibi yer tutucu işaretlerini destekler. Daha gelişmiş düzenler için bkz. başlıklar ve altbilgiler belgeleri.

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

Adobe PDF Library SDK, yerleşik URL işleme yeteneğinden yoksundur.IronPDF yerel destek sağlar:

using IronPdf;

public void ConvertUrlToPdf(string url, string outputPath)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderUrlAsPdf(url);
    pdf.SaveAs(outputPath);
}

Tam URL dönüşüm seçenekleri için bkz. URL'den PDF'ye belgeleri.

ASP.NET Core Integration

Adobe PDF Library SDK'nın statik başlatma deseni bağımlılık enjeksiyonu ile sürtüşme yaratır. IronPDF, modern .NET mimarileriyle doğal olarak bütünleşir.

Adobe Deseni (DI için Sorunlu):

public class AdobePdfService
{
    public byte[] Generate(string content)
    {
        Library.Initialize();
        try
        {
            //Karmaşık belgeconstruction...
            return bytes;
        }
        finally
        {
            Library.Terminate();
        }
    }
}
C#

IronPDF Deseni (DI-Dostu):

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 in Program.cs (.NET 6+):
builder.Services.AddSingleton<IPdfService, IronPdfService>();

Async Desteği

Adobe PDF Library SDK, async işlemleri desteklemez. IronPDF, ölçeklenebilir web uygulamaları için gerekli olan tam async/await yetenekleri sağlar:

public async Task<IActionResult> GenerateReport()
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return File(pdf.BinaryData, "application/pdf");
}

Performans Optimizasyonu

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

SenaryoAdobe PDF Library SDKIronPDF
Basit PDF~100 MB~50 MB
Karmaşık belge~200 MB~80 MB
Toplam (100 PDF)Yüksek (yerel bellek)~100 MB

Optimizasyon İpuçları

Renderer Örneklerini Yeniden Kullan:

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

Web Uygulamalarında Async Kullan:

public async Task<IActionResult> GenerateReport()
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return File(pdf.BinaryData, "application/pdf");
}

Yaygın Göç Sorunlarını Giderme

Problem: Koordinat Tabanlı Konumlandırma Çalışmıyor

Adobe, PostScript nokta koordinatları kullanır. IronPDF, CSS konumlandırmasını kullanır:

// Adobe: Point-based
new TextRun("Hello", font, 12, new Point(100, 700));

// IronPDF: CSS-based
string html = "<p style='position:absolute; left:100px; top:92px;'>Hello</p>";

Problem: Sayfa Boyutu Farklılıkları

Adobe, PostScript noktalarını kullanır.IronPDF enumları veya özel boyutlar kullanır:

// Adobe: Points
Rect(0, 0, 612, 792) // Letter

// IronPDF: Enum or custom
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
// Or custom:
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

Problem: Yazı Tipi Bulunamadı

Adobe, manuel yazı tipi gömmeyi gerektirir.IronPDF yazı tiplerini otomatik olarak işler:

// IronPDF: Use web fonts if needed
string html = @"
<style>
    @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
    body { font-family: 'Roboto', sans-serif; }
</style>";

Problem: SaveFlags Mevcut Değil

Adobe, kaydetme bayrak kombinasyonları kullanır.IronPDF doğrudan kaydetmeyi kullanır:

// Adobe
doc.Save(SaveFlags.Full | SaveFlags.Incremental, path);

//IronPDF- full save is default
pdf.SaveAs(path);

Taşınma Sonrası Kontrollistesi

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

  • Mevcut tüm birim ve bütünleşik testleri çalıştırın
  • PDF çıktıları önceki sürümlerle görsel olarak karşılaştırın
  • Tüm PDF iş akışlarını bir sahne ortamında test edin
  • Lisanslamanın doğru çalıştığını doğrulayın (IronPdf.License.IsLicensed)
  • Performansın önceki uygulamaya karşı test edilmesi
  • Adobe lisanslama yapılandırmasını kaldırın
  • CI/CD boru hattı bağımlılıklarını güncelleyin
  • Adobe PDF Library DLL'lerini projeden kaldırın
  • Geliştirme ekibiniz için yeni desenleri belgeleyin

Ek Kaynaklar


APDFL'den IronPDF'ye geçiş, özellikle birincil ihtiyaçları HTML-to-PDF veya belge manipülasyonu olan ekipler için tipik .NET PDF oluşturma kod tabanını basitleştirebilir. Düşük seviyeli sayfa yapılandırmasından HTML/CSS rendere geçiş, çoğu koordinat hesaplamasını, font yönetimini ve Library yaşam döngüsü yönetim kodunu ortadan kaldırır ve IronPDF'nin geliştirici başına şeffaf lisanslaması, genellikle APDFL'nin satış odaklı, OEM/SaaS-telif modelinden daha kolay bütçelenebilir.

Lütfen dikkate alın: Adobe, Acrobat ve Adobe PDF Library, Adobe Inc.'nin tescilli ticari markalarıdır. APDFL, Adobe'den lisanslı olarak Datalogics, Inc. tarafından dağıtılmaktadır. Bu site, Adobe Inc. veya Datalogics, Inc. ile bağlantılı değildir, onaylanmamış veya desteklenmemiştir. Tüm ürün adları, logolar ve markalar, ilgili sahiplerinin malıdır. 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