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

C#'ta ZetPDF'den IronPDF'ye Nasıl Geçilir

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 bulunmazhttps://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.

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

URL'leri PDF'ye Dönüştürme

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.

Kimlik doğrulama ve özel başlık seçenekleri için URL'den PDF'ye dokümantasyonu inceleyin.

Birden Fazla PDF'yi Birleştirme

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.

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

Koordinat Bazlı Çizim vs HTML

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:

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

Sorun 2: Font Objesi Yönetimi

ZetPDF: Her bir yazı tipi varyasyonu için XFont 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; 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>
HTML

Sorun 3: Renk İşleme

ZetPDF: XBrushes ve renk nesnelerini kullanın.

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

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

Sorun 4: Manuel Sayfa Kırılmaları

ZetPDF: 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: Tablo Oluşturma

ZetPDF:Yönergeolarak dikdörtgenler, çizgiler ve metin konumlandırması çizmeyi gerektirir.

Çözüm: CSS stili 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>
HTML

ZetPDF Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Kod tabanınızıZetPDFkullanımlarını belirlemek için inceleyin:

grep -r "using ZetPDF" --include="*.cs" .
grep -r "XGraphics\|XFont\|XBrushes\|PdfReader" --include="*.cs" .
grep -r "using ZetPDF" --include="*.cs" .
grep -r "XGraphics\|XFont\|XBrushes\|PdfReader" --include="*.cs" .
SHELL

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

  1. .csproj üzerinden manuel ZetPDF.dll referansını kaldırın 2.IronPDF NuGet paketini kurun (dotnet add package IronPdf)
  2. 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
  3. Her URL'den PDF'e dönüştürücüyü ChromePdfRenderer.RenderUrlAsPdf() ile değiştirin
  4. Manuel sayfa kopyala-birleştir döngülerini PdfDocument.Merge() ile değiştirin
  5. DrawString() çağrılarını HTML metin öğelerine dönüştürün
  6. XFont öğesiniCSS font-familyöğesine dönüştürün
  7. XBrushes'yı CSS renkleriyle değiştirin
  8. 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
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