C#'ta ZetPDF'den IronPDF'ye Nasıl Geçilir
ZetPDF, yaygın olarak kullanılan açık kaynaklı PDFSharp kitaplığı temelinde oluşturulmuş, C# uygulamaları için ticari lisanslı bir PDF kütüphanesidir. ZetPDF, ticari destek ve temel PDF işleme yetenekleri sağlarken, PDFSharp temellerinden miras aldığı önemli sınırlamaları taşır. En önemlisi, kütüphane koordinat tabanlı grafik programlamaya dayanır ve modern alternatiflere kıyasla sınırlı HTML'den PDF'e dönüştürme yetenekleri sunar.
Bu kılavuz, ZetPDF'den IronPDF'e komple bir geçiş yolu sunar ve bu geçişi değerlendiren profesyonel .NET geliştiricileri için adım adım talimatlar, kod karşılaştırmaları ve pratik örnekler içerir.
ZetPDF'den Neden Taşınmalısınız
ZetPDF, PDFSharp'un bir çatalı olarak, modern belge oluşturma iş akışları için etkinliğini sınırlayan aynı mimari kısıtlamaları miras alır. Geliştirme ekiplerinin geçişi değerlendirme nedenleri şunları içerir:
Koordinat Tabanlı API: ZetPDF, geliştiricileri her öğeyi kesin koordinatlar ile konumlandırmaya zorlar. Her öğenin karmaşık manuel konumlandırılması, gereksinimler değiştikçe bakım zorlukları yaratır.
Sınırlı CSS Desteği: Stil sistemi yok, bu nedenle her öğe için manuel font ve renk yönetimi gereklidir.
JavaScript İşleme Yok: Dinamik web içeriğini görüntüleyemez veya PDF oluşturma sırasında JavaScript'i çalıştıramaz.
Sınırlı Benzersiz Sunumlar: Ücretsiz olarak PDFSharp'u kullanmaya kıyasla, ZetPDF, ticari lisanslamayı gerektiren az sayıda zorlu neden sunar.
Manuel Sayfa Sonları: Otomatik sayfalama yerine sayfa taşmalarını manuel olarak hesaplamak ve yönetmek gerekir.
Metin Ölçümü Gereklidir: Metin kaydırma için manuel hesaplama, ek geliştirme yükü yaratır.
Temel Sorun
ZetPDF ve PDFSharp, sizi her öğeyi kesin koordinatlar ile konumlandırmaya zorlar:
// ZetPDF: El ile positioning nightmare
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
// ZetPDF: El ile positioning nightmare
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
' ZetPDF: El ile positioning nightmare
graphics.DrawString("Name:", font, brush, New XPoint(50, 100))
graphics.DrawString("John Doe", font, brush, New XPoint(100, 100))
graphics.DrawString("Address:", font, brush, New XPoint(50, 120))
graphics.DrawString("123 Main St", font, brush, New XPoint(100, 120))
' ... hundreds of lines for a simple form
IronPDFHTML/CSSkullanır - düzenleme motoru her şeyi işler:
// IronPDF: Simple HTML
var html = @"
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Simple HTML
var html = @"
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Simple HTML
Dim html As String = "
<p><strong>Name:</strong> John Doe</p>
<p><strong>Address:</strong> 123 Main St</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
IronPDF vs ZetPDF: Ö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 | ZetPDF | IronPDF |
|---|---|---|
| PDFSharp Tabanlı | Evet | Hayır |
| HTML'den PDF'ye Dönüştürme | Sınırlı | Evet (Tam Chromium) |
| Ticari Lisans | Evet, Süresiz | Evet |
| Açık Kaynak Vakfı | PDFSharp (MIT Lisansı) | Chromium tabanlı |
| CSS Desteği | Hayır | Tam CSS3 |
| JavaScript | Hayır | Tam ES2024 |
| Otomatik Düzen | Hayır | Evet |
| Otomatik Sayfa Sonları | Hayır | Evet |
| Tablolar | El ile çizim | HTML <table> |
| Başlıklar/Altbilgiler | El ile | HTML/CSS |
| Filigranlar | Manuel kod | Yerleşik |
| PDF'leri Birleştir | Sınırlı | Evet |
| PDF'leri Böl | Sınırlı | Evet |
| Dijital İmzalar | Hayır | Evet |
| PDF/A | Hayır | Evet |
| Basitlik ve Kullanım Kolaylığı | Orta | High |
Hızlı Başlangıç: ZetPDF'ten IronPDF'e Geçiş
Geçiş hemen bu temel adımlar ile başlatılabilir.
Adım 1: NuGet Paketini Değiştir
ZetPDF'i kaldırın:
# Remove ZetPDF
dotnet remove package ZetPDF
# Remove ZetPDF
dotnet remove package ZetPDF
IronPDF'i yükleyin:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Adım 2: Alan Adlarını Güncelle
ZetPDF ad alanlarını IronPdf ad alanı ile değiştirin:
// Before (ZetPDF)
using ZetPdf;
using ZetPdf.Drawing;
using ZetPdf.Fonts;
// After (IronPDF)
using IronPdf;
// Before (ZetPDF)
using ZetPdf;
using ZetPdf.Drawing;
using ZetPdf.Fonts;
// After (IronPDF)
using IronPdf;
Imports IronPdf
Adım 3: Lisansı Başlat
Uygulama başlangıcında lisans başlatmasını ekleyin:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Kod Geçiş Örnekleri
HTML'i PDF'ye Dönüştürme
HTML'den PDF'e işlem, bu .NET PDF kütüphaneleri arasındaki API farklarını göstermektedir.
ZetPDF Yaklaşımı:
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports ZetPDF
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
Dim htmlContent As String = "<html><body><h1>Hello World</h1></body></html>"
converter.ConvertHtmlToPdf(htmlContent, "output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Module
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
ZetPDF, dosya yoluna doğrudan yazan HtmlToPdfConverter ile ConvertHtmlToPdf() kullanır. IronPDF, çıktıyla daha fazla esneklik sağlayan, dosyayı kaydetmenize, ikili veri almanıza veya kaydetmeden önce ek işlemler yapmanıza olanak tanıyan bir PdfDocument nesnesi döndüren ChromePdfRenderer ile RenderHtmlAsPdf() sağlar.
Gelişmiş HTML-PDF senaryoları için HTML'den PDF'e dönüştürme kılavuzuna bakın.
URL'leri PDF'ye Dönüştürme
URL'den PDF'e dönüştürme modeli farklarını açıkça gösterir.
ZetPDF Yaklaşımı:
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
converter.ConvertUrlToPdf(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
converter.ConvertUrlToPdf(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}
Imports ZetPDF
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
Dim url As String = "https://www.example.com"
converter.ConvertUrlToPdf(url, "webpage.pdf")
Console.WriteLine("PDF from URL created successfully")
End Sub
End Module
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim url = "https://www.example.com"
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully")
End Sub
End Class
ZetPDF, HtmlToPdfConverter sınıfını ConvertUrlToPdf() ile kullanır. IronPDF, JavaScript çalıştırma ve modern CSS dahil doğru web sayfası yakalama için tam bir Chromium oluşturma motorunu kullanan RenderUrlAsPdf() ile ChromePdfRenderer üzerinde sağlar.
Kimlik doğrulama ve ozellestirilmis baslik seçenekleri icin URL'den PDF'ye dokümantasyonu kesfedin.
Birden Fazla PDF'yi Birleştirme
PDF birleştirme, belgelerin nasıl ele alındığı konusunda önemli API farklılıklarını ortaya koyar.
ZetPDF Yaklaşımı:
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var merger = new PdfMerger();
var files = new List<string> { "document1.pdf", "document2.pdf" };
merger.MergeFiles(files, "merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
// NuGet: Install-Package ZetPDF
using ZetPDF;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var merger = new PdfMerger();
var files = new List<string> { "document1.pdf", "document2.pdf" };
merger.MergeFiles(files, "merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
Imports ZetPDF
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim merger As New PdfMerger()
Dim files As New List(Of String) From {"document1.pdf", "document2.pdf"}
merger.MergeFiles(files, "merged.pdf")
Console.WriteLine("PDFs merged successfully")
End Sub
End Module
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdfs = new List<PdfDocument>
{
PdfDocument.FromFile("document1.pdf"),
PdfDocument.FromFile("document2.pdf")
};
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdfs = new List<PdfDocument>
{
PdfDocument.FromFile("document1.pdf"),
PdfDocument.FromFile("document2.pdf")
};
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdfs As New List(Of PdfDocument) From {
PdfDocument.FromFile("document1.pdf"),
PdfDocument.FromFile("document2.pdf")
}
Dim merged = PdfDocument.Merge(pdfs)
merged.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully")
End Sub
End Module
ZetPDF, MergeFiles() ile dosya yolları üzerinde çalışan özel bir PdfMerger sınıfı kullanır. IronPDF, belgeleri PdfDocument.FromFile() kullanarak PdfDocument nesneleri olarak yükler, ardından bunları statik PdfDocument.Merge() yöntemiyle birleştirir. Bu nesne yönelimli yaklaşım, kaydetmeden önce birleşik belge üzerinde ek işlemler yapmanıza olanak tanır.
PDF birleştirme belgelerini ek birleştirme seçenekleri için keşfedin.
Koordinat Tabanlı Çizim vs HTML
Koordinat tabanlı grafikler kullanan mevcutZetPDFkoduna sahip geliştiriciler için, geçiş yolu çizim komutlarını HTML/CSS'ye dönüştürmeyi içerir.
ZetPDF Koordinat Tabanlı Yaklaşım:
using ZetPdf;
using ZetPdf.Drawing;
var document = new PdfDocument();
var page = document.AddPage();
page.Width = XUnit.FromMillimeter(210);
page.Height = XUnit.FromMillimeter(297);
var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);
graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
new XPoint(50, 100));
document.Save("report.pdf");
using ZetPdf;
using ZetPdf.Drawing;
var document = new PdfDocument();
var page = document.AddPage();
page.Width = XUnit.FromMillimeter(210);
page.Height = XUnit.FromMillimeter(297);
var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);
graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
new XPoint(50, 100));
document.Save("report.pdf");
Imports ZetPdf
Imports ZetPdf.Drawing
Dim document As New PdfDocument()
Dim page = document.AddPage()
page.Width = XUnit.FromMillimeter(210)
page.Height = XUnit.FromMillimeter(297)
Dim graphics = XGraphics.FromPdfPage(page)
Dim titleFont As New XFont("Arial", 24, XFontStyle.Bold)
Dim bodyFont As New XFont("Arial", 12)
graphics.DrawString("Company Report", titleFont, XBrushes.Navy, New XPoint(50, 50))
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black, New XPoint(50, 80))
graphics.DrawString("Generated: " & DateTime.Now.ToString(), bodyFont, XBrushes.Gray, New XPoint(50, 100))
document.Save("report.pdf")
IronPDF HTML Yaklaşımı:
using IronPdf;
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial, sans-serif; padding: 50px; }}
h1 {{ color: navy; }}
.date {{ color: gray; }}
</style>
</head>
<body>
<h1>Company Report</h1>
<p>This is the introduction paragraph.</p>
<p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial, sans-serif; padding: 50px; }}
h1 {{ color: navy; }}
.date {{ color: gray; }}
</style>
</head>
<body>
<h1>Company Report</h1>
<p>This is the introduction paragraph.</p>
<p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Imports IronPdf
Dim html As String = $"
<html>
<head>
<style>
body {{ font-family: Arial, sans-serif; padding: 50px; }}
h1 {{ color: navy; }}
.date {{ color: gray; }}
</style>
</head>
<body>
<h1>Company Report</h1>
<p>This is the introduction paragraph.</p>
<p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report.pdf")
ZetPDF yaklaşımı, font nesneleri oluşturmayı, kesin piksel konumlarını hesaplamayı ve grafik bağlamını manuel olarak yönetmeyi gerektirir.IronPDFyaklaşımı, web geliştiricilerinin zaten bildiği standart HTML ve CSS'yi kullanır - fontlar, renkler ve düzen tanıdık CSS özellikleri aracılığıyla yönetilir.
ZetPDF API'denIronPDFHaritalama Referansı
Bu eşleme, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır.
| ZetPDF | IronPDF |
|---|---|
new PdfDocument() |
new ChromePdfRenderer() |
document.AddPage() |
Otomatik |
XGraphics.FromPdfPage(page) |
N/A |
graphics.DrawString() |
HTML metin elemanları |
graphics.DrawImage() |
<img> etiketi |
graphics.DrawLine() |
CSS kenarları |
graphics.DrawRectangle() |
CSS border + div |
new XFont() |
CSS font-family |
XBrushes.Black |
CSS color |
document.Save() |
pdf.SaveAs() |
PdfReader.Open() |
PdfDocument.FromFile() |
HtmlToPdfConverter |
ChromePdfRenderer |
ConvertHtmlToPdf() |
RenderHtmlAsPdf() |
ConvertUrlToPdf() |
RenderUrlAsPdf() |
PdfMerger |
PdfDocument.Merge() |
Yaygın Taşınma Sorunları ve Çözümleri
Sorun 1: Koordinata Dayalı Düzen
ZetPDF: Her şey manuel konumlandırma ile kesin X,Y koordinatları gerektirir.
Çözüm:HTML/CSSakış düzenini kullanın. İhtiyaç duyulduğunda mutlak konumlandırma için CSS kullanın:
.positioned-element {
position: absolute;
top: 100px;
left: 50px;
}
Sorun 2: Yazı Tipi Nesnesi Yönetimi
ZetPDF: Her font varyasyonu için XFont nesneleri oluşturun.
Çözüm: CSS font-family kullanın - fontlar otomatik olarak işlenir:
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; }
</style>
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; font-weight: bold; }
</style>
Sorun 3: Renk Yönetimi
ZetPDF: XBrushes ve renk nesnelerini kullanın.
Çözüm: Standart CSS renklerini kullanın:
.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }
Sorun 4: Manuel Sayfa Sonları
ZetPDF: Y konumunu izleyin ve içerik taşdığında manule yeni sayfalar oluşturun.
Çözüm:IronPDFotomatik sayfa sonlarını işler. Açık kontrol için, CSS kullanın:
.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }
Sorun 5: Tablo Oluşturma
ZetPDF: Dikdörtgenlerin, çizgilerin ve metin konumlandırmanın manuel çizimini gerektirir.
Çözüm: CSS stil ile standart HTML tablolarını kullanın:
<table style="border-collapse: collapse; width: 100%;">
<tr>
<th style="border: 1px solid black; padding: 8px;">Header</th>
</tr>
<tr>
<td style="border: 1px solid black; padding: 8px;">Data</td>
</tr>
</table>
<table style="border-collapse: collapse; width: 100%;">
<tr>
<th style="border: 1px solid black; padding: 8px;">Header</th>
</tr>
<tr>
<td style="border: 1px solid black; padding: 8px;">Data</td>
</tr>
</table>
ZetPDF Taşınma Kontrol Listesi
Ön Taşınma Görevleri
TümZetPDFkullanımını belirlemek için kod tabanınızı denetleyin:
grep -r "using ZetPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" .
grep -r "using ZetPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|PdfMerger\|XGraphics" --include="*.cs" .
HTML'ye dönüştürmeye ihtiyaç duyan koordinat tabanlı çizim kodunu belgeleyin. Font ve renk kullanım desenlerini not alın. Düzen yapılarını HTML eşdeğerlerine haritalayın.
Kod Güncelleme Görevleri
1.ZetPDFNuGet paketini kaldırın
- IronPdf NuGet paketini kurun
- Ad uzayı içe aktarmalarını
ZetPDFdenIronPdfye güncelleyin HtmlToPdfConverter'iChromePdfRendererile değiştirinConvertHtmlToPdf()çağrılarınıRenderHtmlAsPdf()+SaveAs()ye dönüştürünConvertUrlToPdf()çağrılarınıRenderUrlAsPdf()+SaveAs()ye dönüştürünPdfMerger.MergeFiles()'uPdfDocument.Merge()ile değiştirinDrawString()çağrılarını HTML metin öğelerine dönüştürünXFont'iCSSfont-family'ye dönüştürünXBrushes'i CSS renkleri ile değiştirin- BaşlangıçtaIronPDFlisans başlatmasını ekleyin
Taşınım Sonrası Test
Geçiş sonrasında aşağıdaki yönleri doğrulayın:
- Görsel çıktıyı karşılaştırarak görünümün eşleştiğinden veya iyileştiğinden emin olun
- Yazı tipi CSS stilleriyle beklenildiği gibi görüntüleniyor mu kontrol edin
- Sayfa sonu oluşumlarını otomatik sayfalama ile doğru şekilde test edin
- Görsellerin doğru pozisyonda ve şekilde görüntülendiğini doğrulayın
- PDF birleştirme işlemlerinin doğru çıktıyı ürettiğini test edin
- Tüm mevcut işlevselliğin yeni uygulamayla çalıştığını doğrulayın
IronPDF'e Geçişin Temel Avantajları
ZetPDF'den IronPDF'e geçiş birkaç önemli avantaj sağlar:
Modern Chromium Görüntüleme Motoru:IronPDFHTML'den PDF'e dönüştürme için Chromium kullanarak CSS3 ve ES2024 JavaScript desteği sağlar. Modern çerçeveler ve duyarlı tasarımlar doğru şekilde görüntülenir.
HTML Tabanlı İçerik Oluşturma: Web geliştiricileri, mevcut HTML ve CSS becerilerini kullanabilir. Koordinat tabanlı çizim API'lerini öğrenmeye veya yazı tipi nesnelerini yönetmeye gerek yok.
Otomatik Düzen ve Sayfalama: Metin sarma, sayfa kırılmaları ve akış düzeni otomatik olarak gerçekleşir. El ile öğe konumları hesaplamaya gerek yok.
Sadeleştirilmiş API: Ortak işlemler için tekli metod çağrıları. PdfDocument.Merge(), karmaşık dosya yolu işleme kalıplarının yerini alır.
Aktif Geliştirme: 2026 boyunca .NET 10 ve C# 14 benimsenmesi arttıkça, IronPDF'in düzenli güncellemeleri mevcut ve gelecekteki .NET sürümleriyle uyumluluğu sağlar.
Kapsamlı Özellik Seti: Dahili filigran ekleme, dijital imzalar, PDF/A uyumluluğu ve ZetPDF'in eksik olduğu gelişmiş PDF manipülasyon özellikleri.

