IRONSOFTWAREHOME
VIDEOLAR

C# ile HTML'yi PDF'ye Nasıl Dönüştürürüz | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

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
C#

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 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:

ÖzellikZetPDFIronPDF
API stiliPDFsharp şekilli XGraphics çizimYüksek seviye HTML renderlama
HTML'den PDF'ye DönüştürmeBelgelenmiş özellik listesinde yer almıyorEvet (Tam Chromium)
Ticari LisansEvet, Süresiz ($299 / $449 / $599)Evet
DağıtımZIP indirimi (NuGet paketi yok)NuGet (IronPdf)
Son Amme Faaliyeti2021'den beri listelenen sürümler yokAktif, sık sürümler
CSS DesteğiHayırTam CSS3
JavaScriptHayırTam ES2024
Otomatik DüzenHayırEvet
Otomatik Sayfa KırılmalarıHayırEvet
TablolarManuel çizimHTML <table>
Başlıklar/AltbilgilerYönergeHTML/CSS
FiligranlarManuel kodYerleşik
PDF'leri BirleştirmeBirinci sınıf yardımcı yokEvet
PDF'leri BölmeBirinci sınıf yardımcı yokEvet
Dijital İmzalarHayırEvet
PDF/AHayırEvet

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
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;

Adım 3: Lisansa İzin Verin

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

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

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");
    }
}
C#

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");
    }
}

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");
    }
}
C#

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");
    }
}

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");
    }
}
C#

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");
    }
}

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");

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");
C#

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:

ZetPDFIronPDF
new PdfDocument()new ChromePdfRenderer()
document.AddPage()Otomatik
XGraphics.FromPdfPage(page)N/A (yerine HTML/CSS)
graphics.DrawString()HTML metin öğeleri
graphics.DrawImage()<img> etiketi
graphics.DrawLine()CSS sınırları / <hr>
graphics.DrawRectangle()CSS border + div
new XFont()CSS font-family
XBrushes.BlackCSS 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;
}
Text

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>
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); }
Text

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; }
Text

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>
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" .
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ın: PDFSharp 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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez