IRONSOFTWAREHOME
VIDEOLAR

C# İle PDF'yi HTML'ye Nasıl Dönüştürürüz

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

QuestPDF'ten IronPDF'ye geçiş, PDF oluşturma iş akışınızı geniş PDF manipülasyon yeteneklerine sahip standart HTML/CSS tabanlı bir yaklaşıma ve bir C# akıcı düzen API'sinden taşır. Bu kılavuz, mevcut web becerilerine başvurmanız, HTML şablonlarını yeniden kullanmanız veQuestPDFtemel kütüphanesinin içermediği özellikleri kazanmanız için adım adım bir geçiş yolu sunar.

Neden QuestPDF'den IronPDF'ye Geçilmeli

QuestPDF'yi Anlamak

QuestPDF, C# ile programatik olarak PDF oluşturmak üzere özel olarak tasarlanmış modern bir fluent API'dir. Kapsamlı HTML'den PDF'e dönüştürme sunan kütüphanelerin aksine,QuestPDFtemel kütüphanesi programatik bir düzen API'si ile sınırlıdır. QuestPDF, geliştiricilerin HTML'ye dayanmak zorunda kalmadan C# kodu kullanarak belgeleri sıfırdan oluşturmaları gereken senaryolarda başarılıdır.

Topluluk düzeyi, bireyler, kâr amacı gütmeyenler, FOSS projeleri ve yıllık brüt geliri 1 milyon USD'nin altında olan kuruluşlar için MIT şartlarına göre ücretsizdir. O eşik üzerinde, QuestPDF, $999'dan başlayan profesyonel lisans (ömür boyu, en fazla 10 geliştirmeci) ve $2.999'dan başlayan kurumsal lisans (ömür boyu, kurulum çapında), uzun vadeli planlamaya dahil edilmesi gereken sundur.

Temel Sorun: Çekirdek Kütüphanede HTML Motoru Yok

QuestPDF bazen HTML'den PDF'e dönüştürme önerilir, ancak temel kütüphane HTML render yapmaz. Topluluk tarafından sürdürülen QuestPDF.HTML uzantısı, HTML/CSS'in sınırlı bir alt kümesini kapsar, ancak çekirdek motor yalnızca programlamaya yöneliktir ve gerçek bir tarayıcı motoru çalıştırmaz. Zaten HTML/CSS şablonlarına sahip ekipler genellikle bunları akıcı API'de yeniden inşa etmek zorundadır.

ÖzellikQuestPDFIronPDF
HTML'den PDF'e (çekirdek)Desteklenmez (sadece akıcı API)Tam destek
HTML'den PDF'e (uzantı)Kısmen QuestPDF.HTML (sınırlı alt küme) aracılığıylaTam destek
CSS Stil VermeUzantı aracılığıyla sınırlıTam CSS3
Mevcut ŞablonlarSıfırdan Yeniden İnşa Etmek GerekirHTML/CSS Varlıklarını Yeniden Kullanma
Tasarım Aracı UyumluluğuNoneHerhangi bir web tasarım aracı
Öğrenme EğrisiYeni akıcı C# APIWeb becerileri transferi
Düzen ÖnizlemesiTamamlayıcı uygulamaHerhangi bir tarayıcıda önizleme
PDF ManipülasyonuBirleştirme / ayıklama / üst üste bindirme / şifreleme (Belge İşlemleri API'si, 2024.12.0+)Birleştirme, bölme, düzenleme, imzalama

IronPDF,QuestPDFtemelinin içermediği yerel HTML'den PDF'e renderleme sunarak belgeleri C# kodunda elle yeniden oluşturma ihtiyacını ortadan kaldırır. Ayrıca QuestPDF'in Belge İşlemleri API'si (2024.12.0+) birleştirme, sayfa çıkarma, üst/alt kaplama, ekler ve şifreleme içerir, ancak mevcuttaki sayfa içeriğini düzenleme, OCR veya dijital imzalar sunmaz ancak belgede düzenleme gibi PDF manipülasyon özelliklerini de kapsar.

###QuestPDFLisanslama Modeli

QuestPDF'nin Community License (MIT koşulları) bireyler, kar amacı gütmeyen kuruluşlar, FOSS projeleri ve yıllık brüt geliri 1 milyon USD'nin altında olan organizasyonlar için ücretsizdir. Bu eşikten sonra, 999 $ (süresiz, 10 geliştiriciye kadar) veya 2.999 $ (süresiz, organizasyon geneli için) Enterprise lisansına ihtiyacınız vardır. Tetikleyici, koltuk sayısından ziyade kuruluşunuzun geliri olduğu için, bu, hem kendi lisanslamanızda hem de müşterilerle olan görüşmelerinizi değiştirebilir.

IronPDF, geliri denetlemeyen, müşteri lisansı gereksinimlerini kaldıran ve öngörülebilir maliyetlerle her geliştirici için ticari lisans sunar.

Modern .NET sürümlerini benimseyen ekipler için,IronPDF her geliştiriciye lisanslama sağlayarak gelir tabanlı tetikleyicilerden uzak durur ve mevcut web geliştirme becerilerini kullanan standart bir HTML/CSS yaklaşımı sunar.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# Remove QuestPDF
dotnet remove package QuestPDF

# Add IronPDF
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

###QuestPDFKullanımını Bul

# Find allQuestPDFusages in your codebase
grep -r "QuestPDF\|Document.Create\|\.GeneratePdf" --include="*.cs" .
SHELL

Tam API Referansı

Ad Alanı Değişiklikleri

// Before: QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

// After: IronPDF
using IronPdf;

Temel API Eşlemeleri

QuestPDF KavramıIronPDF Eşdeğeri
Document.Create()new ChromePdfRenderer()
.Page()RenderHtmlAsPdf()
.Text()HTML <p>, <h1>, <span>
.Bold()CSS font-weight: bold
.FontSize(24)CSS font-size: 24px
.Image()HTML <img src="...">
.Table()HTML <table>
.Column()CSSdisplay: flex; flex-yön: sütun
.Row()CSSdisplay: flex; flex-yön: sıra
PageSizes.A4RenderingOptions.PaperSize
.Margin()RenderingOptions.Margin*
.GeneratePdf()pdf.SaveAs()
YokPdfDocument.Merge()
YokPdfDocument.FromFile()
Yokpdf.SecuritySettings

Kod Göç Örnekleri

Örnek 1: Temel Belge Oluşturma (HTML'den PDF'ye)

Önceki (QuestPDF):

// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;
        
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                page.Content().Column(column =>
                {
                    column.Item().Text("Hello World").FontSize(20).Bold();
                    column.Item().Text("This is a paragraph of text.");
                });
            });
        }).GeneratePdf("output.pdf");
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a paragraph of text.</p>");
        pdf.SaveAs("output.pdf");
    }
}

Bu örnek paradigmalardaki farkı gösterir. QuestPDF, akıcı API'sini öğrenmeyi gerektirir: Document.Create(), container.Page(), page.Content().Column(), column.Item().Text() ve .FontSize(20).Bold() gibi metod zincirlemesi ile stil verilerek. Ayrıca QuestPDF.Settings.License = LicenseType.Community ile lisans türünü de ayarlamanız gerekir.

IronPDF, her web geliştiricisinin bildiği standart HTML kullanır: başlıklar için <h1>, paragraflar için <p>. Öğrenilecek yeni bir yerleşim DSL yok. IronPDF'nin yaklaşımı daha temiz bir sözdizimi sunar ve modern .NET web yığınının geri kalanıyla entegre olur. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.

Örnek 2: Fatura Oluşturma

Önceki (QuestPDF):

// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;
        
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                page.Content().Column(column =>
                {
                    column.Item().Text("INVOICE").FontSize(24).Bold();
                    column.Item().Text("Invoice #: 12345").FontSize(12);
                    column.Item().PaddingTop(20);
                    column.Item().Text("Customer: John Doe");
                    column.Item().Text("Total: $100.00").Bold();
                });
            });
        }).GeneratePdf("invoice.pdf");
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var htmlContent = @"
            <h1>INVOICE</h1>
            <p>Invoice #: 12345</p>
            <br/>
            <p>Customer: John Doe</p>
            <p><strong>Total: $100.00</strong></p>
        ";
        
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("invoice.pdf");
    }
}

QuestPDF, yerleşim için .Column() ve .Item(), boşluklar için .PaddingTop(20) kullanır. IronPDF, standart HTML kullanır: başlık için <h1>, paragraflar için <p>, boşluklar için <br/> ve kalın metin için <strong>.

Gerçek avantaj:IronPDF ile tasarımcılar HTML şablonlarını bağımsız olarak oluşturabilir ve değiştirebilir.QuestPDFile her tasarım değişikliği, bir C# geliştiricisinin kodu değiştirmesini gerektirir. Daha fazla bilgiyi kılavuzlarımızda öğrenin.

Örnek 3: Sayfa Numaraları ile Başlıklar ve Alt Bilgiler

Önceki (QuestPDF):

// NuGet: Install-Package QuestPDF
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

class Program
{
    static void Main()
    {
        QuestPDF.Settings.License = LicenseType.Community;
        
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Size(PageSizes.A4);
                page.Margin(2, Unit.Centimetre);
                
                page.Header().Text("Document Header").FontSize(14).Bold();
                
                page.Content().Text("Main content of the document.");
                
                page.Footer().AlignCenter().Text(text =>
                {
                    text.Span("Page ");
                    text.CurrentPageNumber();
                });
            });
        }).GeneratePdf("document.pdf");
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var htmlContent = "<p>Main content of the document.</p>";
        
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        
        pdf.Header = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            FontSize = 14
        };
        
        pdf.Footer = new TextHeaderFooter()
        {
            CenterText = "Page {page}"
        };
        
        pdf.SaveAs("document.pdf");
    }
}

QuestPDF, page.Header() ve page.Footer() kullanarak .AlignCenter() ve .CurrentPageNumber() gibi akıcı yöntemlerle. IronPDF, TextHeaderFooter nesneleri, CenterText ve FontSize gibi özelliklerle kullanır. {page} yer tutucu otomatik olarak geçerli sayfa numarasını ekler.


Kritik Taşıma Notları

Paradigma Değişikliği

Temel değişiklik, özel bir C# akıcı yerleşim API'sinden standart HTML/CSS'ye geçiştir:

// QuestPDF: Fluent C# layout API
container.Page(page =>
{
    page.Content().Column(column =>
    {
        column.Item().Text("Invoice").Bold().FontSize(24);
        column.Item().Row(row =>
        {
            row.RelativeItem().Text("Customer:");
            row.RelativeItem().Text("Acme Corp");
        });
    });
});

// IronPDF: Standard HTML/CSS
var html = @"
<div style='font-family: Arial; padding: 40px;'>
    <h1 style='font-weight: bold; font-size: 24px;'>Invoice</h1>
    <div style='display: flex; justify-content: space-between;'>
        <span>Customer:</span>
        <span>Acme Corp</span>
    </div>
</div>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);

Düzen Şablonu Dönüşümleri

QuestPDF DeseniHTML/CSS Eşdeğeri
.Column()display: flex; flex-yön: sütun
.Row()display: flex; flex-yön: sıra
.RelativeItem()flex: 1
.Table()<table> elemanı
.PaddingTop(20)padding-top: 20px veya <br/>
.AlignCenter()text-align: center
.FontSize(24)font-size: 24px
.Bold()font-weight: bold veya <strong>

Sayfa Ayarları Dönüşümü

// QuestPDF
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);

// IronPDF
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;    // mm (2cm = 20mm)
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

Geçiş Sonrası Yeni Özellikler

IronPDF'e geçiş yaptıktan sonra QuestPDF'in sağlayamadığı yetenekler kazanırsınız:

PDF Birleştirme

var cover = renderer.RenderHtmlAsPdf("<h1>Cover</h1>");
var content = renderer.RenderHtmlAsPdf(reportHtml);
var existing = PdfDocument.FromFile("appendix.pdf");

var merged = PdfDocument.Merge(cover, content, existing);
merged.SaveAs("complete.pdf");

PDF Güvenliği

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.OwnerPassword = "admin";
pdf.SecuritySettings.UserPassword = "reader";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");

URL'den PDF'e

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
pdf.SaveAs("webpage.pdf");

Mevcut PDF'leri Yükleyin ve Düzenleyin

var pdf = PdfDocument.FromFile("existing.pdf");
// Modify, merge, add security, etc.
pdf.SaveAs("modified.pdf");

Özellik Karşılaştırması Özeti

ÖzellikQuestPDFIronPDF
HTML-PDFÇekirdek: Desteklenmez (sınırlı QuestPDF.HTML uzantısı aracılığıyla)Birincil özellik
Öğrenme EğrisiFluent C# APIStandart web becerileri
Şablon ÖnizlemesiTamamlayıcı uygulamaHerhangi bir tarayıcı
Tasarım İşbirliğiYalnızca geliştiricilerTasarımcılar + Geliştiriciler
Mevcut VarlıklarYeniden inşa edilmelidirHTML/CSS'i Yeniden Kullanın
PDF ManipülasyonuBirleştirme / ayıklama / üstüne bindirme (Doküman İşlemleri API'si, 2024.12.0+)Desteklenen
Güvenlik/İmzalamaŞifreleme + izinler (dijital imzalama yok)Şifreleme + dijital imzalama
Lisanslama ModeliGelire dayalı (1 milyon $ eşik)Geliştirici başına
Müşteri Etkisi1 milyon $ gelirin üzerinde lisansa ihtiyaç olabilirNone
Bootstrap/TailwindDesteklenmiyorDesteklenen
URL'den PDF'yeDesteklenmiyorDesteklenen

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • TümQuestPDFbelge şablonlarını tanımlayın (Document.Create, .GeneratePdf)
  • Kullanılan DSL kalıplarını belgelerleyeceğinizi belirtin (.Column(), .Row(), .Table(), .Text())
  • Stil yöntemlerini CSS eşdeğerleriyle eşleyin
  • ironpdf.com adresinden IronPDF lisans anahtarını edinin

Paket Değişiklikleri

  • QuestPDF NuGet paketini kaldır
  • IronPdf NuGet paketini kurun: dotnet add package IronPdf

Kod Değişiklikleri

  • Ad alanı ithalatlarını güncelleyin
  • QuestPDF.Settings.License = LicenseType.Community'ı kaldırın
  • Document.Create() modelini ChromePdfRenderer + HTML'e dönüştürün
  • .Column() / .Row() yerine CSS Flexbox kullanın
  • .Table() yerine HTML <table> elemanlarını kullanın
  • .Text().Bold().FontSize(24)'i <h1 style='...'>'ye dönüştürün
  • page.Header() / page.Footer() yerine TextHeaderFooter kullanın
  • .CurrentPageNumber() yerine {page} yer tutucusunu kullanın
  • .GeneratePdf()'i pdf.SaveAs()'a dönüştürün
  • Uygulama başlangıcında lisans başlatma ekle

Geçiş Sonrası

  • PDF çıktısının görsel karşılaştırması
  • Çok sayfalı belgelerde doğru sayfa ekiplerlerini test edin
  • Gerekli olduğunda yeni özellikler ekleyin (güvenlik, birleştirme, URL-to-PDF)

Lütfen dikkate alın: QuestPDF, ilgili sahibinin ticari markasıdır. Bu site, Codeux Software veyaQuestPDFbakımcıları ile ilişkili değildir, desteklenmemektedir veya sponsorluğu yapılmamaktadır. 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