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
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)
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
IronPDF'i yükleyin:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
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
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"
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
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
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
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
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
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
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() |
|
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>
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,..." />
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" .
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
- Xfinium.Pdf NuGet paketini kaldırın 2.IronPDF NuGet paketini yükleyin
Xfinium.Pdfisim alanı içe aktarımlarınıIronPdf'ye güncelleyinDrawString()çağrılarını HTML metin elemanlarına dönüştürünDrawImage()çağrılarını HTMLetiketlerine dönüştürünDrawRectangle()veDrawLine()'yi CSS kenarlıklarına dönüştürünPdfStandardFont'yi CSSfont-familyile değiştirinPdfRgbColorvePdfBrush'yi CSS renkleri ile değiştirin- Sayfa döngü birleştirmesini
PdfDocument.Merge()ile değiştirin - 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.

