using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
ZetPDF (zetpdf.com), API yüzeyinin PDFsharp'a yakından benzediği ve PDFsharp topluluğunun kapalı bir çatal olduğunu sorguladığı ticari lisanslı bir .NET PDF SDK'sıdır. Satıcı, onu tescilli, %100 managed-code bir motor olarak pazarlamaktadır. ZetPDF, NuGet üzerinden dağıtılmamaktadır — kurulum bir ZIP indirimi olarak https://zetpdf.com/download/adresinden gelmektedir — ve proje 2021'den beri hiçbir halka açık sürüm faaliyeti göstermemektedir. Fiyatlandırma süresizdir: $299 Tek Proje / $449 Çoklu / $599 OEM.
Bu kılavuz, ZetPDF'ten IronPDF'e geçiş yolunu, .NET geliştiricileri için adım adım talimatlar, kod karşılaştırmaları ve örnekler ile sunmaktadır.
Neden ZetPDF'den Geçiş Yapmalısınız
ZetPDF'in PDFsharp şekilli, koordinat-çizim API'si, modern belge oluşturma iş akışlarına sınırlamalar getiren mimari kısıtlamalar taşır. Ekiplerin göç etmeyi düşünmelerinin yaygın nedenleri şunlardır:
Koordinat Tabanlı API:ZetPDFher öğeyi tam XGraphics koordinatları aracılığıyla konumlandırır. Manuel konumlandırma, gereksinimler değiştikçe bakım yükü yaratır.
CSS Desteği Yok: Stil sistemi yoktur — yazı tipleri ve renkler, koda göre eleman bazında yönetilir.
JavaScript Render Desteği Yok: PDF oluşturma sırasında dinamik web içeriğini render edemez veya JavaScript çalıştıramaz.
Yerel HTML'den PDF'ye Yok: ZetPDF'in belgelenmiş özellik listesi, bir HTML'den PDF'ye ya da URL'den PDF'ye dönüştürücü içermez; rendering yalnızca düşük seviyeli XGraphics çizimdir.
NuGet Yok, Durgun Sürüm: Dağıtım, satıcıdan bir ZIP dosyası ile https://zetpdf.com/download/adresinden alınır, 2021'den beri halka açık sürüm faaliyeti yoktur.
Manuel Sayfa Bölmeleri: Sayfa taşması otomatik sayfalandırma yerine manuel olarak hesaplanmalı ve yönetilmelidir.
Metin Ölçümü Gereksizdir: Metin sarma için manuel hesaplama, geliştirme yükü ekler.
Temel Sorun
ZetPDF ve PDFsharp, her elemanı tam koordinatlarla konumlandırmanızı gerektirir:
// ZetPDF:Yönergepositioning 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:Yönergepositioning 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:Yönergepositioning 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
$vbLabelText $csharpLabel
IronPDF,HTML/CSSkullanır—düzen motoru her şeyi yönetir:
// 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)
$vbLabelText $csharpLabel
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
API stili
PDFsharp şekilli XGraphics çizim
Yüksek seviye HTML renderlama
HTML'den PDF'ye Dönüştürme
Belgelenmiş özellik listesinde yer almıyor
Evet (Tam Chromium)
Ticari Lisans
Evet, Süresiz ($299 / $449 / $599)
Evet
Dağıtım
ZIP indirimi (NuGet paketi yok)
NuGet (IronPdf)
Son Amme Faaliyeti
2021'den beri listelenen sürümler yok
Aktif, sık sürümler
CSS Desteği
Hayır
Tam CSS3
JavaScript
Hayır
Tam ES2024
Otomatik Düzen
Hayır
Evet
Otomatik Sayfa Kırılmaları
Hayır
Evet
Tablolar
Manuel çizim
HTML
Başlıklar/Altbilgiler
Yönerge
HTML/CSS
Filigranlar
Manuel kod
Yerleşik
PDF'leri Birleştirme
Birinci sınıf yardımcı yok
Evet
PDF'leri Bölme
Birinci sınıf yardımcı yok
Evet
Dijital İmzalar
Hayır
Evet
PDF/A
Hayır
Evet
Hızlı Başlangıç: ZetPDF'den IronPDF'e Geçiş
Geçiş bu öncü adımlarla hemen başlayabilir.
Adım 1: ZetPDF referansını IronPDF NuGet paketi ile değiştirin
ZetPDF, NuGet'te bulunmaz — https://zetpdf.com/download/adresinden bir ZIP olarak gönderilir ve projenize ZetPDF.dll ekleyerek referans edilir. Göçten sonra, o DLL referansını kaldırır ve NuGet'ten IronPDF'i yüklersiniz:
# Remove the ZetPDF.dll reference from your csproj manually, then:
dotnet add package IronPdf
# Remove the ZetPDF.dll reference from your csproj manually, then:
dotnet add package IronPdf
SHELL
Adım 2: Ad Alanlarını Güncelleyin
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
$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
ZetPDF'in yayınlanan özellik listesi, yerel bir HTML'den PDF'ye ya da URL'den PDF'ye dönüştürücü içermez — belgelenmiş yüzeyi PDF görüntüleme/yazdırma, açıklamalar, AES256 şifreleme, form alanları ve metin çıkarma kapsar. Aşağıdaki sözde-sargı, tipik olarak ekiplerinZetPDFüzerinde bir HTML'den PDF'ye giriş noktası nasıl dublörlendiklerini gösterir; pratikte iş, harici bir HTML render alıcısına veya düşük seviyeli XGraphics çizime geri döner.
ZetPDF Yaklaşımı (ilustratif — yerel HTML'den PDF'ye yok):
//ZetPDFis NOT on NuGet — install via SDK ZIP from https://zetpdf.com/download/
using ZetPDF;
using System;
class Program
{
static void Main()
{
//Hayırnative HtmlToPdfConverter exists inZetPDF— illustrative call only.
var converter = new HtmlToPdfConverter();
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}
//ZetPDFis NOT on NuGet — install via SDK ZIP from https://zetpdf.com/download/
using ZetPDF;
using System;
class Program
{
static void Main()
{
//Hayırnative HtmlToPdfConverter exists inZetPDF— illustrative call only.
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
Class Program
Shared Sub Main()
'Hayırnative HtmlToPdfConverter exists inZetPDF— illustrative call only.
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 Class
$vbLabelText $csharpLabel
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
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()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
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
Module Program
Sub Main()
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "<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 Module
$vbLabelText $csharpLabel
IronPDF, bir PdfDocument nesnesi döndüren ChromePdfRenderer ile RenderHtmlAsPdf() sağlar — dosyayı kaydedebilir, ikili verileri alabilir veya kaydetmeden önce ek işlemler gerçekleştirebilirsiniz.
ZetPDF ayrıca yerel bir URL'den PDF'ye dönüştürücüye sahip değil; HTML/URL renderlama, belgelenmiş özellik listesinde yoktur. Pratik göç yolları genellikle ZetPDF'i harici bir HTML renderlayıcı ile eşleştirir veya IronPDF gibi Chromium tabanlı bir kütüphaneye geçiş yapar.
ZetPDF Yaklaşımı (ilustratif — yerel URL'den PDF'ye yok):
//ZetPDFis NOT on NuGet — install via SDK ZIP from https://zetpdf.com/download/
using ZetPDF;
using System;
class Program
{
static void Main()
{
//Hayırnative ConvertUrlToPdf exists inZetPDF— illustrative call only.
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
converter.ConvertUrlToPdf(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}
//ZetPDFis NOT on NuGet — install via SDK ZIP from https://zetpdf.com/download/
using ZetPDF;
using System;
class Program
{
static void Main()
{
//Hayırnative ConvertUrlToPdf exists inZetPDF— illustrative call only.
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
Class Program
Shared Sub Main()
' Hayırnative ConvertUrlToPdf exists inZetPDF— illustrative call only.
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 Class
$vbLabelText $csharpLabel
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
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()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
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
Module Program
Sub Main()
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer As New ChromePdfRenderer()
Dim url As String = "https://www.example.com"
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully")
End Sub
End Module
$vbLabelText $csharpLabel
IronPDF'nin RenderUrlAsPdf(), JavaScript yürütme ve modern CSS dahil olmak üzere web sayfası yakalama için tam bir Chromium render motorunu ChromePdfRenderer üzerinde kullanır.
ZetPDF bir satırlık PdfMerger.MergeFiles() yardımcısı göndermez. Bire bulemek, (ZetPDF'nin benzer olduğu) PDFsharp ile aynı deseni izler: her girişi PdfReader ile açın, ardından sayfaları bir çıktıya PdfDocument kaydırın ve Save(). Aşağıdaki gösterim kapsamında, karşılaştırma için IronPDF yüzeyini yansıtıyor; gerçekZetPDFkodunda manuel döngüyü yazarsınız.
ZetPDF Yaklaşımı (gösterici — yerleşik PdfMerger yoktur):
//ZetPDFis NOT on NuGet — install via SDK ZIP from https://zetpdf.com/download/
using ZetPDF;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
//ZetPDFhas no built-in PdfMerger — illustrative call only.
var merger = new PdfMerger();
var files = new List<string> { "document1.pdf", "document2.pdf" };
merger.MergeFiles(files, "merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
//ZetPDFis NOT on NuGet — install via SDK ZIP from https://zetpdf.com/download/
using ZetPDF;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
//ZetPDFhas no built-in PdfMerger — illustrative call only.
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()
' ZetPDFhas no built-in PdfMerger — illustrative call only.
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
$vbLabelText $csharpLabel
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var pdfs = new List<PdfDocument>
{
PdfDocument.FromFile("document1.pdf"),
PdfDocument.FromFile("document2.pdf")
};
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var pdfs = new List<PdfDocument>
{
PdfDocument.FromFile("document1.pdf"),
PdfDocument.FromFile("document2.pdf")
};
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim pdfs As New List(Of PdfDocument) From {
PdfDocument.FromFile("document1.pdf"),
PdfDocument.FromFile("document2.pdf")
}
Dim merged As PdfDocument = PdfDocument.Merge(pdfs)
merged.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully")
End Sub
End Module
$vbLabelText $csharpLabel
IronPDF, belgeleri PdfDocument.FromFile() kullanarak PdfDocument nesneleri olarak yükler, ardından bunları statik PdfDocument.Merge() yöntemiyle birleştirir. Nesne yönelimli yaklaşım, kaydedilmeden önce birleşik belgede ek işlemler yapılmasına izin verir.
Koordinata dayalı grafik kullanan mevcutZetPDFkoduna sahip geliştiriciler için, geçiş yolu çizim komutlarını HTML/CSS'ye dönüştürmeyi içermektedir.
ZetPDF Koordinat Bazlı 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")
$vbLabelText $csharpLabel
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")
$vbLabelText $csharpLabel
ZetPDF yaklaşımı, font nesneleri oluşturmayı, kesin piksel pozisyonlarını hesaplamayı ve grafik bağlamını manuel olarak yönetmeyi gerektirir.IronPDF yaklaşımı, web geliştiricilerinin zaten bildiği standart HTML ve CSS kullanır—fontlar, renkler ve düzen, tanıdık CSS özellikleri aracılığıyla yönetilir.
ZetPDF 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:
ZetPDF
IronPDF
new PdfDocument()
new ChromePdfRenderer()
document.AddPage()
Otomatik
XGraphics.FromPdfPage(page)
N/A (yerine HTML/CSS)
graphics.DrawString()
HTML metin öğeleri
graphics.DrawImage()
etiketi
graphics.DrawLine()
CSS sınırları /
graphics.DrawRectangle()
CSS border + div
new XFont()
CSS font-family
XBrushes.Black
CSS color
document.Save()
pdf.SaveAs()
PdfReader.Open()
PdfDocument.FromFile()
(no native HTML-to-PDF)
ChromePdfRenderer.RenderHtmlAsPdf()
(no native URL-to-PDF)
ChromePdfRenderer.RenderUrlAsPdf()
(manual page-copy loop)
PdfDocument.Merge()
Yaygın Göç 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. Gerekli olduğunda kesin konumlandırma için CSS kullanın:
HTML'ye dönüştürülmesi gereken koordinata dayalı çizim kodunu belgeleyin. Font ve renk kullanım kalıplarını not alın. Düzen yapılarınızı HTML eşdeğerlerine eşleyin.
Kod Güncelleme Görevleri
.csproj üzerinden manuel ZetPDF.dll referansını kaldırın
2.IronPDF NuGet paketini kurun (dotnet add package IronPdf)
Ad alanı ithalatlarını ZetPDF dan IronPdf ya güncelleyin
4.ZetPDFetrafındaki her tür ev yapımı HTML'den PDF dönüştürücüsünü ChromePdfRenderer.RenderHtmlAsPdf() ile değiştirin
Her URL'den PDF'e dönüştürücüyü ChromePdfRenderer.RenderUrlAsPdf() ile değiştirin
Manuel sayfa kopyala-birleştir döngülerini PdfDocument.Merge() ile değiştirin
DrawString() çağrılarını HTML metin öğelerine dönüştürün
XFont öğesiniCSS font-familyöğesine dönüştürün
XBrushes'yı CSS renkleriyle değiştirin
Başlangıçta IronPDF lisans başlatmasını ekleyin (IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";)
Geçiş Sonrası Testler
Geçiş sonrasında bu yönleri doğrulayın:
Görsel çıktıyı karşılaştırın, görünümün eşleştiğinden veya iyileştiğinden emin olun
Fontların CSS stili ile beklendiği gibi render edildiğini doğrulayın
Otomatik sayfalanma ile sayfa kırılmalarının doğru şekilde gerçekleştiğini test edin
Görüntülerin doğru konumlandırıldığını ve görüntülendiğini doğrulayın
PDF birleştirme işlemlerinin doğru çıkışı ürettiğinden emin olun
Yeni uygulama ile tüm mevcut işlevselliğin çalıştığını doğrulayın
IronPDF'e Geçmenin Temel Faydaları
ZetPDF'den IronPDF'e geçiş, birkaç önemli avantaj sağlar:
Modern Chromium Render Motoru: IronPDF, HTML-to-PDF dönüşümü için Chromium kullanır ve tam CSS3 ve ES2024 JavaScript desteği sağlar. Modern framework'ler ve duyarlı tasarımlar doğru bir şekilde render edilir.
HTML Tabanlı İçerik Oluşturma: Web geliştiricileri mevcut HTML ve CSS becerilerini kullanabilir. Koordinata dayalı çizim API'lerini öğrenmeye veya font nesnelerini yönetmeye gerek yoktur.
Otomatik Düzen ve Sayfalanma: Metin sarma, sayfa kırılmaları ve akış düzeni otomatik olarak gerçekleşir. Eleman pozisyonlarının elle hesaplanmasına gerek yok.
Basitleştirilmiş API: Yaygın işlemler için tek metot çağrıları. PdfDocument.Merge(), karmaşık dosya yolu işleme kalıplarını değiştirir.
Aktif Geliştirme: IronPDF'nin düzenli sürüm kadansı, kütüphaneyi modern .NET sürümleriyle güncel tutarken, ZetPDF'nin 2021'den bu yana resmi sürüm etkinliği olmamasıyla tezat oluşturur.
Kapsamlı Özellik Seti: Dahili filigranlama, dijital imzalar, PDF/A uyumluluğu ve gelişmiş PDF manipülasyon özellikleri ZetPDF'nin belgelenmiş yüzeyinde mevcut değildir.
Lütfen dikkate alınPDFSharp ve ZetPDF, kendi sahiplerinin tescilli ticari markalarıdır. Bu site,ZetPDFveya empira Software GmbH ile ilişkili, desteklenen 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, 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ı...