Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

C#'ta XFINIUM.PDF'den IronPDF'ye Nasıl Geçilir

XFINIUM.PDF, O2 Solutions tarafından geliştirilen ve C# dilinde belgeleri programatik olarak oluşturma ve düzenleme araçları sunan ticari bir çapraz platform PDF kütüphanesidir. İki sürüm sunmaktadır — Generator (PDF oluşturma ve düzenleme) ve Viewer (Generator özellikleri artı render/görüntüleme). Kütüphane, NuGet üzerinde Xfinium.Pdf.NetStandard ve Xfinium.Pdf.NetCore olarak dağıtılmaktadır. Koordinat tabanlı grafik programlama modeli, belge ağırlıklı uygulamalar oluşturan ekipler için sürtünme yaratabilir, çünkü çoğu düzen çalışması piksel koordinatlarını kullanarak manuel olarak eleman konumlandırmayı içerir.

Bu kılavuz, XFINIUM.PDF'ten IronPDF'e geçiş yolunu, bu geçişi değerlendiren .NET geliştiricileri için adım adım talimatlar, kod karşılaştırmaları ve pratik örneklerle sunmaktadır.

Neden XFINIUM.PDF'den Geçiş Yapmalısınız

XFINIUM.PDF, geliştiricilerin sayfadaki çoğu elemanı doğrudan konumlandırmasını gerektiren, koordinat tabanlı grafik programlamaya dayanan bir düşük seviyeli PDF kütüphanesidir. Geliştirme ekiplerinin göç etmeyi düşünmelerinin yaygın nedenleri şunlardır:

Yerel HTML motoru yok: XFINIUM.PDF'in yerleşik bir HTML'den PDF'e dönüştürücüsü yoktur. Satıcı, sınırlı etiket kümesini destekleyen bir örnek XHTML yürütücüsü (p, font, b, i, u, ul, li) sağlar ve CSS ya da JavaScript'i çalıştırmaz, bu da tam HTML'den PDF'e dönüştürme yetenekleri gerektiren projeler için yeterli olmayabilir.

Koordinat Tabanlı API: Çoğu eleman yerleşimi için DrawString("text", font, brush, 50, 100) gibi piksel koordinatları ile manuel konumlandırma gereklidir.

Manuel Yazı Tipi Yönetimi: PdfStandardFont ve PdfBrush gibi sınıflar kullanarak yazı tipi nesneleri açıkça oluşturulmalı ve yönetilmelidir.

CSS Stil Desteği Yok: Modern web stil desteği yok. Renkler, yazı tipleri ve düzenler programatik yöntem çağrılarıyla ele alınır.

JavaScript Renderı Yok: Sadece statik içerik. XFINIUM.PDF, dinamik web içeriğini render etmez veya JavaScript çalıştırmaz.

Karmaşık Metin Düzeni: Basit tek bir satırlı metnin ötesindeki şeyler için genellikle manuel metin ölçüm ve sarma hesaplamaları gereklidir.

Küçük topluluk: Ana akım çözümlerine kıyasla daha az topluluk tarafından sağlanan örnek ve öğretici, yeni kullanıcıların başlamasını zorlaştırabilir.

Temel Sorun: Graphics API vs HTML

XFINIUM.PDF, size bir grafik programcısı gibi düşünmenizi zorlar, bir belge tasarımcısı gibi değil:

// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
' XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50)
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80)
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80)
' ... hundreds of lines for a simple document
$vbLabelText   $csharpLabel

IronPDF, aşina olunan HTML/CSS'yi kullanır:

// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Declarative HTML
Dim html As String = "<h1>Invoice</h1><p><b>Customer:</b> " & customer.Name & "</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

IronPDF vs XFINIUM.PDF: Özellik Karşılaştırması

Mimari farklılıkları anlamak, teknik karar vericilerin geçiş yatırımını değerlendirmesine yardımcı olur:

Özellik XFINIUM.PDF IronPDF
HTML'den PDF'ye Yerel motor yok; yalnızca örnek XHTML dönüştürücü (sınırlı etiketler, CSS/JS yok) Modern CSS3 + JavaScript ile Tam HTML'den PDF'ye dönüştürme
Topluluk ve Destek Daha küçük topluluk, daha az çevrim içi kaynak bulunabilir Geniş dokümantasyon ve öğreticilerle büyük topluluk
Lisans Geliştirici tabanlı lisanslama ile ticari Ticari
Çapraz Platform Desteği Güçlü çapraz platform yetenekleri Ayrıca çapraz platform işlemleri destekler
CSS Desteği Hayır Tam CSS3
JavaScript Hayır Tam ES2024
Flexbox/Grid Hayır Evet
Otomatik Düzen Hayır Evet
Otomatik Sayfa Kesme Hayır Evet
Elle Konumlandırma Gereklidir İsteğe bağlı (CSS konumlandırma)
Öğrenme Eğrisi Yüksek (koordinat sistemi) Düşük (HTML/CSS)
Kod Kapsamı Oldukça Yüksek Düşük

Hızlı Başlangıç: XFINIUM.PDF'den IronPDF'e Geçiş

Geçiş bu öncü adımlarla hemen başlayabilir.

Adım 1: NuGet Paketini Değiştirin

XFINIUM.PDF'i kaldırın (gerçek NuGet kimlikleri platforma özgüdür):

# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf.NetStandard
# or: dotnet remove package Xfinium.Pdf.NetCore
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf.NetStandard
# or: dotnet remove package Xfinium.Pdf.NetCore
SHELL

IronPDF'i yükleyin:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Adım 2: Ad Alanlarını Güncelleyin

XFINIUM.PDF ad alanlarınıIronPDF ad alanı ile değiştirin:

// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;

// After (IronPDF)
using IronPdf;
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;

// After (IronPDF)
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Adım 3: Lisansa İzin Verin

Uygulama başlangıcında lisans başlatmayı ekleyin:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Kod Göç Örnekleri

HTML'yi PDF'ye Dönüştürme

En temel işlem, bu .NET PDF kütüphaneleri arasındaki karmaşıklık farkını ortaya koymaktadır.

XFINIUM.PDF Yaklaşımı:

// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
// XFINIUM.PDF has no native HTML-to-PDF engine. Flow content accepts
// styled text, headings, tables and images - not HTML. The vendor sample
// converter parses limited XHTML (p, font, b, i, u, ul, li) into
// PdfFormattedContent; full CSS/JS rendering is not supported.
using Xfinium.Pdf;
using Xfinium.Pdf.FlowDocument;
using Xfinium.Pdf.Graphics;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFlowDocument flowDocument = new PdfFlowDocument();

        flowDocument.AddContent(new PdfFlowHeadingContent(
            "Hello World",
            new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)));

        flowDocument.AddContent(new PdfFlowTextContent(
            "This is a PDF generated from text content (not HTML).",
            new PdfStandardFont(PdfStandardFontFace.Helvetica, 12)));

        using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
        {
            flowDocument.Save(fs);
        }
    }
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
// XFINIUM.PDF has no native HTML-to-PDF engine. Flow content accepts
// styled text, headings, tables and images - not HTML. The vendor sample
// converter parses limited XHTML (p, font, b, i, u, ul, li) into
// PdfFormattedContent; full CSS/JS rendering is not supported.
using Xfinium.Pdf;
using Xfinium.Pdf.FlowDocument;
using Xfinium.Pdf.Graphics;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFlowDocument flowDocument = new PdfFlowDocument();

        flowDocument.AddContent(new PdfFlowHeadingContent(
            "Hello World",
            new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)));

        flowDocument.AddContent(new PdfFlowTextContent(
            "This is a PDF generated from text content (not HTML).",
            new PdfStandardFont(PdfStandardFontFace.Helvetica, 12)));

        using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
        {
            flowDocument.Save(fs);
        }
    }
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.FlowDocument
Imports Xfinium.Pdf.Graphics
Imports System.IO

Module Program
    Sub Main()
        Dim flowDocument As New PdfFlowDocument()

        flowDocument.AddContent(New PdfFlowHeadingContent(
            "Hello World",
            New PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)))

        flowDocument.AddContent(New PdfFlowTextContent(
            "This is a PDF generated from text content (not HTML).",
            New PdfStandardFont(PdfStandardFontFace.Helvetica, 12)))

        Using fs As New FileStream("output.pdf", FileMode.Create)
            flowDocument.Save(fs)
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;

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

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

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

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

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

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

XFINIUM.PDF, bir PdfFlowDocument oluşturmayı, her stil için PdfStandardFont nesneleri oluşturarak her bir içeriği bir PdfFlowHeadingContent veya PdfFlowTextContent olarak inşa etmeyi, bunları akış belgesine eklemeyi ve bir FileStream ile kaydetmeyi gerektirir. Akış belgesi API'si, yazılı içerik nesnelerini kabul eder, HTML işaretlemeyi değil.IronPDF bunu üç satıra basitleştirir: bir render oluşturun, HTML render edin ve kaydedin.

İleri düzey HTML-to-PDF senaryoları için HTML'den PDF'ye dönüşüm rehberine bakın.

Birden Fazla PDF'yi Birleştirme

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

XFINIUM.PDF Yaklaşımı:

// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument output = new PdfFixedDocument();

        FileStream file1 = File.OpenRead("document1.pdf");
        PdfFixedDocument pdf1 = new PdfFixedDocument(file1);

        FileStream file2 = File.OpenRead("document2.pdf");
        PdfFixedDocument pdf2 = new PdfFixedDocument(file2);

        for (int i = 0; i < pdf1.Pages.Count; i++)
        {
            output.Pages.Add(pdf1.Pages[i]);
        }

        for (int i = 0; i < pdf2.Pages.Count; i++)
        {
            output.Pages.Add(pdf2.Pages[i]);
        }

        output.Save("merged.pdf");

        file1.Close();
        file2.Close();
    }
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument output = new PdfFixedDocument();

        FileStream file1 = File.OpenRead("document1.pdf");
        PdfFixedDocument pdf1 = new PdfFixedDocument(file1);

        FileStream file2 = File.OpenRead("document2.pdf");
        PdfFixedDocument pdf2 = new PdfFixedDocument(file2);

        for (int i = 0; i < pdf1.Pages.Count; i++)
        {
            output.Pages.Add(pdf1.Pages[i]);
        }

        for (int i = 0; i < pdf2.Pages.Count; i++)
        {
            output.Pages.Add(pdf2.Pages[i]);
        }

        output.Save("merged.pdf");

        file1.Close();
        file2.Close();
    }
}
Imports Xfinium.Pdf
Imports System.IO

Module Program
    Sub Main()
        Dim output As New PdfFixedDocument()

        Dim file1 As FileStream = File.OpenRead("document1.pdf")
        Dim pdf1 As New PdfFixedDocument(file1)

        Dim file2 As FileStream = File.OpenRead("document2.pdf")
        Dim pdf2 As New PdfFixedDocument(file2)

        For i As Integer = 0 To pdf1.Pages.Count - 1
            output.Pages.Add(pdf1.Pages(i))
        Next

        For i As Integer = 0 To pdf2.Pages.Count - 1
            output.Pages.Add(pdf2.Pages(i))
        Next

        output.Save("merged.pdf")

        file1.Close()
        file2.Close()
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

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

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");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

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");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class Program
    Shared Sub Main()
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")

        Dim merged = PdfDocument.Merge(pdf1, pdf2)
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

XFINIUM.PDF, bir çıkış belgesi oluşturmayı, dosya akışlarını açmayı, her belgeyi yüklemeyi, sayfalar arasında elle gezerek birer birer eklemeyi, kaydetmeyi ve ardından akışları kapatmayı gerektirir. IronPDF, tüm karmaşıklığı dahili olarak yöneten tek bir PdfDocument.Merge() yöntemi sağlar.

PDF birleştirme dokümantasyonu'nda ek birleşme seçeneklerini inceleyin.

Metin ve Görüntülerle PDF Oluşturma

Karışık içerikli belgeler, temel paradigma farkını gösterir.

XFINIUM.PDF Yaklaşımı:

// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument document = new PdfFixedDocument();
        PdfPage page = document.Pages.Add();

        PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
        PdfBrush brush = new PdfBrush(new PdfRgbColor(0, 0, 0));

        page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);

        using (FileStream imageStream = File.OpenRead("image.jpg"))
        {
            PdfJpegImage image = new PdfJpegImage(imageStream);
            page.Graphics.DrawImage(image, 50, 100, 200, 150);
        }

        document.Save("output.pdf");
    }
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using System.IO;

class Program
{
    static void Main()
    {
        PdfFixedDocument document = new PdfFixedDocument();
        PdfPage page = document.Pages.Add();

        PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
        PdfBrush brush = new PdfBrush(new PdfRgbColor(0, 0, 0));

        page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);

        using (FileStream imageStream = File.OpenRead("image.jpg"))
        {
            PdfJpegImage image = new PdfJpegImage(imageStream);
            page.Graphics.DrawImage(image, 50, 100, 200, 150);
        }

        document.Save("output.pdf");
    }
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Graphics
Imports System.IO

Class Program
    Shared Sub Main()
        Dim document As New PdfFixedDocument()
        Dim page As PdfPage = document.Pages.Add()

        Dim font As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
        Dim brush As New PdfBrush(New PdfRgbColor(0, 0, 0))

        page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50)

        Using imageStream As FileStream = File.OpenRead("image.jpg")
            Dim image As New PdfJpegImage(imageStream)
            page.Graphics.DrawImage(image, 50, 100, 200, 150)
        End Using

        document.Save("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

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

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

        string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
        string html = $@"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
                </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;

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

        string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
        string html = $@"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
                </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim imageBase64 As String = Convert.ToBase64String(File.ReadAllBytes("image.jpg"))
        Dim html As String = $"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
                </body>
            </html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

XFINIUM.PDF, bir belge oluşturmayı, bir sayfa eklemeyi, yazı tipi ve fırça nesneleri oluşturmayı, belirli koordinatlarda metin çizmeyi, bir görüntü akışı açmayı, bir PdfJpegImage oluşturmayı, görüntüyü koordinatlarla boyutlarda çizmeyi, akışı kapatmayı ve kaydetmeyi gerektirir. IronPDF, gömülü base64 görüntüleriyle standart HTML kullanır—web geliştiricilerinin her gün kullandığı aynı yaklaşım.

XFINIUM.PDF API'den IronPDF'e Haritalama Referansı

Bu eşleştirme, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır:

XFINIUM.PDF IronPDF
PdfFixedDocument ChromePdfRenderer
PdfPage Otomatik
page.Graphics.DrawString() HTML metin öğeleri
page.Graphics.DrawImage() <img> etiketi
page.Graphics.DrawLine() CSS border veya <hr>
page.Graphics.DrawRectangle()
üzerinde CSS border
PdfStandardFont CSS font-family
PdfRgbColor CSS color
PdfBrush CSS özellikleri
PdfJpegImage base64 ile etiketi
document.Save(stream) pdf.SaveAs() veya pdf.BinaryData
PdfFlowDocument RenderHtmlAsPdf()
Satıcı örnek XHTML dönüştürücü RenderHtmlAsPdf()

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: Koordinata Dayalı Düzen

XFINIUM.PDF: Her şey, manuel konumlandırma ile kesin X,Y koordinatları gerektirir.

Çözüm: HTML/CSS akış düzenini kullanın. Gerekli olduğunda kesin konumlandırma için CSS kullanın:

.positioned-element {
    position: absolute;
    top: 100px;
    left: 50px;
}

Sorun 2: Font Objesi Yönetimi

XFINIUM.PDF: Her yazı tipi için PdfStandardFont veya PdfUnicodeTrueTypeFont nesneleri oluşturun.

Çözüm: CSS font-family kullanın—fontlar otomatik olarak yönetilir:

<style>
    body { font-family: Arial, sans-serif; }
    h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
<style>
    body { font-family: Arial, sans-serif; }
    h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
HTML

Sorun 3: Renk İşleme

XFINIUM.PDF: Renkler için PdfRgbColor ve PdfBrush nesneleri oluşturun.

Çözüm: Standart CSS renkleri kullanın:

.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }
.info { color: rgba(0, 0, 255, 0.8); }

Sorun 4: Manuel Sayfa Kırılmaları

XFINIUM.PDF: Y konumunu izleyin ve içerik taştığında yeni sayfalar manuel olarak oluşturun.

Çözüm: IronPDF, otomatik sayfa kırılmalarını yönetir. Açık kontrol için CSS kullanın:

.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }

Sorun 5: Görüntü Yükleme

XFINIUM.PDF: Dosya akışlarını açın, PdfJpegImage nesneleri oluşturun, koordinatlarda çizin, akışları kapatın.

Çözüm: Dosya yolları veya base64 verileriyle HTML etiketlerini kullanın:

<img src="image.jpg" width="200" height="150" />

<img src="data:image/jpeg;base64,..." />
<img src="image.jpg" width="200" height="150" />

<img src="data:image/jpeg;base64,..." />
HTML

XFINIUM.PDF Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Kod tabanınızı XFINIUM.PDF kullanımlarını belirlemek için inceleyin:

grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
SHELL

Koordinata dayalı düzenleri belgeleyin ve tüm X,Y konumlandırma değerlerini not alın. Yazı tipi ve renk nesnelerini tanımlayın (PdfStandardFont, PdfRgbColor, PdfBrush). Birlestirilmiş PDF iş akışlarını PdfFixedDocument.Pages.Add() kullanarak eşleyin.

Kod Güncelleme Görevleri

  1. Xfinium.Pdf NuGet paketini kaldırın 2.IronPDF NuGet paketini yükleyin
  2. Xfinium.Pdf isim alanı içe aktarımlarını IronPdf'ye güncelleyin
  3. DrawString() çağrılarını HTML metin elemanlarına dönüştürün
  4. DrawImage() çağrılarını HTML etiketlerine dönüştürün
  5. DrawRectangle() ve DrawLine()'yi CSS kenarlıklarına dönüştürün
  6. PdfStandardFont'yi CSS font-family ile değiştirin
  7. PdfRgbColor ve PdfBrush'yi CSS renkleri ile değiştirin
  8. Sayfa döngü birleştirmesini PdfDocument.Merge() ile değiştirin
  9. Başlangıçta IronPDF lisans başlatma ekleyin

Geçiş Sonrası Testler

Geçiş sonrasında bu yönleri doğrulayın:

  • Görsel çıktıyı karşılaştırın, gösterimin beklentileri karşıladığından emin olun
  • Yeni HTML/CSS yaklaşımı ile metin render'ını doğrulayın
  • Görüntü konumlandırmasını CSS ile kontrol edin
  • Sayfa kırılmalarının beklendiği gibi gerçekleştiğini test edin
  • PDF güvenlik ayarlarının doğru uygulandığını kontrol edin
  • Tüm hedef platformlarda test et

IronPDF'e Geçmenin Temel Faydaları

XFINIUM.PDF'den IronPDF'e geçiş, birkaç önemli avantaj sağlar:

HTML Tabanlı İçerik Oluşturma: Web geliştiricileri mevcut HTML ve CSS becerilerini kullanabilir. Koordinata dayalı çizim API'lerini öğrenmeye veya font ve fırça nesnelerini yönetmeye gerek yoktur.

Otomatik Düzen: Metin sarma, sayfalandırma ve akış düzeni otomatik olarak gerçekleşir. Eleman konumlarının veya sayfa kırılmalarının manuel hesaplanmasına gerek yoktur.

Modern CSS Desteği: Tam CSS3, Flexbox ve Grid düzenleri dahil. Duyarlı tasarımlar doğrudan PDF'e çevrilir.

Basit PDF İşlemleri: PdfDocument.Merge() gibi yaygın işlemler için tek yöntem çağrıları, karmaşık sayfa yineleme döngülerinin yerini alır.

Aktif Geliştirme: IronPDF'nin düzenli güncellemeleri, güncel .NET sürümleri ve C# dil sürümleriyle aynı hızda ilerler.

Kapsamlı Dokümantasyon: XFINIUM.PDF'in daha küçük ekosistemine nazaran kapsamlı dokümantasyon, öğreticiler ve destek kaynakları ile geniş bir topluluk.

Lütfen dikkate alınXfinium PDF, ilgili sahibine ait tescilli bir markadır. Bu site, XFINIUM Software ile bağlantılı, onaylı veya sponsorlu 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ı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara