Altbilgi içeriğine atla
ÜRüN KARşıLAşTıRMALARı

PDFsharp vs QuestPDF (C# PDF Kütüphanesi Derinlemesine Karşılaştırma)

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against QuestPDF on pricing, HTML support, and licensing.

View Full Comparison

.NET'te PDF belgeleri ile çalışırken, geliştiriciler genellikle projeleri için hangisinin en uygun olduğunu belirlemek amacıyla çeşitli kütüphaneleri karşılaştırırken bulurlar. .NET ekosisteminde üç popüler tercih PDFsharp, QuestPDF ve IronPDF'dir. Her kütüphane farklı kullanım durumlarına hitap eder ve benzersiz güçlü ve zayıf yönler sunar. Bu makalede, bu kütüphanelerin derinlemesine bir karşılaştırmasını ve bu URL kullanarak temel PDF oluşturma kapasitelerini nasıl ele aldıklarını sunacağız, böylece bilinçli bir karar verebilirsiniz.

PDFsharp Nedir?

PDFsharp, PDF belgeleri oluşturma, düzenleme ve işleme amacıyla tasarlanmış açık kaynaklı bir kütüphanedir. Basitlik ve temel PDF işlevselliğine odaklanarak, PDFsharp, doğrudan PDF manipülasyon kabiliyetleri arayan geliştiriciler için güvenilir bir araç olmuştur.

PDFsharp'ın Temel Özellikleri

  • PDF Oluşturma ve Düzenleme: Yeni PDF'ler oluşturun veya mevcut olanları değiştirin.
  • Grafik Çizimi: Şekiller, metinler ve görüntüler çizmek için destek içerir.
  • Açık Kaynak: MIT lisansı altında lisanslanır, ücretsiz kullanımı ve değiştirilmesini sağlar.

Kurulum

NuGet Paket Yöneticisi kullanımı ile, PDFsharp projelerinize kolayca yüklenebilir. NuGet Paket Yöneticisi Konsoluna aşağıdaki satırı çalıştırın:

Install-Package PDFsharp

PDFsharp Kod Örneği

Şimdi, verilen bir URL'den yeni bir PDF belgesi oluşturmanın PDFsharp ile nasıl ele alındığına bakalım. PDFsharp kendi başına HTML veya URL'yi PDF'ye dönüştüremediğinden, HtmlRenderer.PdfSharp gibi bir web işleme motoruyla entegrasyon sağlanması gerekecek. Ek olarak, verilen URL'den HTML içeriğini almak için HttpClient kullanacağız.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;

public class Program
{
    static async Task Main(string[] args)
    {
        // Ensure proper encoding support
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

        string url = "https://www.apple.com";

        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);

            // Generate PDF from the fetched HTML content
            var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
            pdf.Save("output.pdf");

            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;

public class Program
{
    static async Task Main(string[] args)
    {
        // Ensure proper encoding support
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

        string url = "https://www.apple.com";

        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);

            // Generate PDF from the fetched HTML content
            var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
            pdf.Save("output.pdf");

            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Imports PdfSharp.Pdf
Imports TheArtOfDev.HtmlRenderer.PdfSharp

Public Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Ensure proper encoding support
		Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

		Dim url As String = "https://www.apple.com"

		' Fetch HTML content from the URL
		Using client As New HttpClient()
			Dim htmlContent As String = Await client.GetStringAsync(url)

			' Generate PDF from the fetched HTML content
			Dim pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4)
			pdf.Save("output.pdf")

			Console.WriteLine("PDF created successfully as 'output.pdf'.")
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

Çıkış PDF Dosyası

PDFsharp Örnek Ciktisi

Görüldüğü gibi, PDFsharp HTML içeriğini ve web sayfalarını PDF dosyalarına dönüştürmek için kullanılabilirken, ek kütüphanelere ihtiyaç duyuyor ve orijinal web sitesinde görülen CSS ve formatlamayı koruyamıyor. Ücretsiz bir PDF geliştiricisi kütüphanesi olarak harika olsa da, IronPDF gibi ücretli kütüphanelerde görülen daha gelişmiş bazı özelliklerden yoksun.

QuestPDF Nedir?

QuestPDF, akıcı bir API kullanılarak görsel olarak çekici PDF'ler oluşturmaya odaklanan modern bir açık kaynaklı kütüphanedir. Belgelerin yerleşimi ve işlenmesine yönelik yenilikçi yaklaşımı, dinamik ve karmaşık tasarımlar gerektiren uygulamalar için güçlü bir rakip yapar.

QuestPDF'in Temel Özellikleri

  • Akıcı API: Belge düzenlerini tanımlamak için deklaratif bir yaklaşım sunar.
  • Modern Düzen Sistemi: CSS'ten ilham alarak ızgaraları, bileşenleri ve esnek düzen yapıları destekler.
  • Yüksek Performans: Büyük ve karmaşık belgeleri hızla işlemek için optimize edilmiştir.

Kurulum

Bu kütüphanenin bir NuGet paketi olarak yüklenebilir olması sayesinde, yükleme işlemi oldukça basittir ve NuGet Konsolunda yalnızca bir satır çalıştırmayı gerektirir:

Install-Package QuestPDF

QuestPDF Kod Örneği

Şimdi QuestPDF'nin örnek URL'mizi PDF formatına nasıl dönüştüreceğini inceleyeceğiz. QuestPDF, URL'den PDF'e dönüşümü doğrudan desteklemese de, bir HTTP istemcisi kullanarak HTML içeriğini alabilir ve QuestPDF'nin akıcı API'si ile bir PDF'ye dönüştürebilirsiniz.

using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

public class Program
{
    static async Task Main(string[] args)
    {
        // Configure QuestPDF to use the community license
        QuestPDF.Settings.License = LicenseType.Community;

        string url = "https://www.apple.com";

        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);

            // Parse the HTML content using HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(htmlContent);

            // Extract meaningful content (e.g., text inside <body>)
            var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";

            // Generate PDF using QuestPDF
            Document.Create(container =>
            {
                container.Page(page =>
                {
                    page.Size(PageSizes.A4);
                    page.Margin(20);
                    page.Content().Text(bodyContent);
                });
            }).GeneratePdf("output.pdf");

            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

public class Program
{
    static async Task Main(string[] args)
    {
        // Configure QuestPDF to use the community license
        QuestPDF.Settings.License = LicenseType.Community;

        string url = "https://www.apple.com";

        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);

            // Parse the HTML content using HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(htmlContent);

            // Extract meaningful content (e.g., text inside <body>)
            var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";

            // Generate PDF using QuestPDF
            Document.Create(container =>
            {
                container.Page(page =>
                {
                    page.Size(PageSizes.A4);
                    page.Margin(20);
                    page.Content().Text(bodyContent);
                });
            }).GeneratePdf("output.pdf");

            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.Threading.Tasks
Imports HtmlAgilityPack
Imports QuestPDF.Fluent
Imports QuestPDF.Helpers
Imports QuestPDF.Infrastructure

Public Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Configure QuestPDF to use the community license
		QuestPDF.Settings.License = LicenseType.Community

		Dim url As String = "https://www.apple.com"

		' Fetch HTML content from the URL
		Using client As New HttpClient()
			Dim htmlContent As String = Await client.GetStringAsync(url)

			' Parse the HTML content using HtmlAgilityPack
			Dim htmlDoc = New HtmlDocument()
			htmlDoc.LoadHtml(htmlContent)

			' Extract meaningful content (e.g., text inside <body>)
			Dim bodyContent = If(htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText, "No content found")

			' Generate PDF using QuestPDF
			Document.Create(Sub(container)
				container.Page(Sub(page)
					page.Size(PageSizes.A4)
					page.Margin(20)
					page.Content().Text(bodyContent)
				End Sub)
			End Sub).GeneratePdf("output.pdf")

			Console.WriteLine("PDF created successfully as 'output.pdf'.")
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

Çıkış PDF Dosyası

QuestPDF Örnek Ciktisi

PDFSharp gibi, dış kütüphanelerle (örneğin, HtmlAgilityPack) QuestPDF, HTML içeriğini PDF'ye dönüştürmek için kullanılabilir, ancak CSS stil ve formatlamasını koruyamayacaktır. QuestPDF, sıfırdan PDF belgeleri oluşturmak isteyenler için harika bir seçim olsa da, bu kütüphane için HTML'den PDF'ye dönüşüm güçlü bir yön değildir.

IronPDF: Güçlü bir PDF Kütüphanesi

IronPDF, gelişmiş ve kapsamlı PDF yeteneklerine ihtiyaç duyan .NET geliştiricileri için tasarlanmış sağlam bir PDF kütüphanesidir. HTML'den PDF'e dönüştürmeye odaklanarak, PDF belgelerini düzenlemek için gelişmiş seçenekler, şifreleme ve PDF/A uyumluluğu gibi ek özelliklerle birleştiğinde, kurumsal sınıf uygulamalar için güçlü bir tercih haline gelir.

IronPDF'in Temel Özellikleri

  • HTML'den PDF'e: Tüm web sayfalarını veya HTML dizelerini kolayca PDF olarak işleyin.
  • PDF/A Uyumluluğu: Uzun vadeli arşivleme standartlarına uygun olan belgeler oluşturun.
  • Gelişmiş Güvenlik: Şifrelemeyi, parola korumasını ve dijital imzaları destekler.
  • PDFleri Düzenleme: Mevcut PDF dosyalarını değiştirin, birleştirin ve bölün.
  • Çapraz Platform: .NET Framework, .NET Core ve .NET 5+ ile tamamen uyumludur.

Kurulum

IronPDF'yi kurmak için Visual Studio'da NuGet Paket Yöneticisini kullanın:

NuGet Paket Yöneticisini Kullanma:

  1. Projenizi Visual Studio'da açın.
  2. Çözüm Gezgini'nde projeye sağ tıklayın ve "NuGet Paketlerini Yönet"i seçin.
  3. "IronPDF" arayın ve "Yükle"ye tıklayın.

IronPDF Kurulum Görüntüleri

NuGet Paket Yonetici Konsolu'nu Kullanarak:

Install-Package IronPdf

Örnek: IronPDF Kullanarak URL'yi PDF'ye Dönüştürme

IronPDF, URL'leri PDF'ye dönüştürmek için basit ve doğrudan bir API sağlar. İşte bir örnek:

using IronPdf;

public class PdfConverter
{
    public static void Main(string[] args)
    {
        // Create a renderer with IronPdf
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the URL as a PDF
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the PDF
        pdf.SaveAs("url.pdf");
    }
}
using IronPdf;

public class PdfConverter
{
    public static void Main(string[] args)
    {
        // Create a renderer with IronPdf
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the URL as a PDF
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the PDF
        pdf.SaveAs("url.pdf");
    }
}
Imports IronPdf

Public Class PdfConverter
	Public Shared Sub Main(ByVal args() As String)
		' Create a renderer with IronPdf
		Dim renderer As New ChromePdfRenderer()

		' Render the URL as a PDF
		Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")

		' Save the PDF
		pdf.SaveAs("url.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Çıkış PDF Dosyası

IronPDF Örnek Ciktisi

Yukarıdaki kod örneği, IronPDF'nin URL içeriğini sadece birkaç satır kod ile PDF'ye nasıl kolayca dönüştürebileceğini göstermektedir. Gördüğünüz gibi, sadece HTML'i dönüştürmekle kalmadı, aynı zamanda CSS stil ve düzenlerini de dönüştürdü, bu da çıktı PDF'nin orijinal formatlamaya sadık kalmasını sağladı. ChromePdfRenderer render motoru kullanarak, IronPDF, içeriğin orijinal kalitesini kaybetmeden piksel mükemmeliğinde PDF belgeleri üretir.

Burada görüldüğü gibi, IronPDF, diğer belge türlerini yanı sıra HTML'den PDF'e dönüşümde de güçlü bir tercihdir. Yüksek kaliteli dönüşüm işleri, kısa, kolayca uygulanabilir bir kod bloğunda ele alır.

Detaylı Analiz

Kullanım Kolaylığı

PDFsharp basit ve kullanımı kolaydır, bu da onu yeni başlayanlar veya temel PDF ihtiyaçları bulunan geliştiriciler için mükemmel bir seçim yapar. Prosedürel yaklaşımı, bir PDF'ye metin, şekil veya resim ekleme gibi görevler için hızlı kurulum ve uygulama sağlar. Ancak, HTML ve URL'den PDF'e dönüşüm görevlerini yerine getirmek için harici bir kütüphane gerektirir.

Öte yandan, QuestPDF, akıcı API'si ile daha modern bir yaklaşım sunar. Web veya UI tasarımında deneyimli geliştiriciler bunu sezgisel bulacaktır, ancak yeni başlayanlar, düzen odaklı tasarım felsefesine alışırken hafif bir öğrenme eğrisiyle karşılaşabilirler. Yine de, yerleşik araçlar HTML'den PDF'ye dönüşüm işlemlerini ele alacak yeterlilikte değil.

IronPDF, HTML'den PDF'e dönüşüm ve gelişmiş PDF özellikleri için en kolay deneyimi sağlar. Sezgisel API'si, uygulamaya ayırılan zamanı azaltır ve sağlam belgelendirme ve örnekler sunar. IronPDF, bu makalede incelediğimiz URL'den PDF'e örneği gibi birçok farklı belge türünün PDF'e dönüştürülmesini sağlayabilir, hem de hiçbir belge kalitesi kaybı olmadan.

Performans

Performans, dinamik olarak PDF oluşturması gereken uygulamalar için kritik bir faktördür. PDFsharp, küçük ve basit belgeler için yeterlidir ancak büyük ölçekli veya karmaşık düzenlerle mücadele eder.

QuestPDF dinamik ve görsel olarak çekici belgeler oluşturmakta başarılıdır. Yapılandırılmış düzenleri yüksek verimlilikle yönetmek için optimize edilmiştir.

IronPDF, özellikle HTML işleme, CSS ve JavaScript desteğine ihtiyaç duyan uygulamalar için performans ve işlevselliği olağanüstü bir şekilde dengeler. Ayrıca, kurumsal kriterlere uygun PDF görevlerini rahatlıkla yönetme yeteneğine sahiptir.

Karşılaştırma Özeti

  • PDFsharp, temel PDF oluşturma ve düzenleme görevleri için en iyi opak ve açık kaynaklı kütüphanedir. Küçük projeler için idealdir ancak modern düzenler ve gelişmiş özellikler için destekten yoksundur.
  • QuestPDF, akıcı API'sini kullanarak dinamik, karmaşık ve görsel açıdan çekici PDF'ler üretmekte parlıyor. Ancak, sadece PDF üretimine odaklanır ve mevcut belgeleri düzenlemeyi desteklemez.
  • IronPDF, yerleşik HTML'den PDF'ye dönüştürme, OCR ve gelişmiş güvenlik seçenekleri dahil olmak üzere en kapsamlı özellik setini sunar. Ticari bir lisans gerektirirken, işlevselliği onu kurumsal ve profesyonel uygulamalar için üst tercihlerden biri yapar.

Sonuç

.NET projeniz için doğru PDF kütüphanesini seçmek, spesifik gereksinimlerinize bağlıdır. Temel PDF görevleri için hafif, açık kaynaklı bir araç ihtiyaçınız varsa, PDFsharp sağlam bir seçenek. Dinamik, görsel olarak çekici belgeler oluşturmak için QuestPDF modern yaklaşımıyla öne çıkar.

Ancak, gelişmiş özelliklere, kesintisiz HTML'den PDF'e dönüşüme ve kurumsal sınıf yeteneklere ihtiyaçınız varsa, IronPDF'nin sunduklarına göz atın.

Her bir kütüphanenin güçlü ve sınırlı yönlerini anlarsanız, projenizin ihtiyaçlarıyla uyumlu bilinçli bir karar verebilirsiniz.

Lütfen dikkate alinPDFsharp ve QuestPDF kendi sahibi olan kuruluşun tescilli ticari markalarıdır. Bu site, PDFsharp veya QuestPDF ile bağlantılı, onlar tarafından onaylanmış veya sponsoru altında değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerinin mülkiyetindedir. Karşılaştırmalar yalnızca bilgilendirme amaçlıdır ve yazım sırasında kamuya açık bilgileri yansıtır.

Sıkça Sorulan Sorular

PDFsharp, QuestPDF ve IronPDF arasındaki fark nedir?

PDFsharp, basitlik ve temel PDF özellikleri nedeniyle temel görevler için ideal olup, QuestPDF cekici belgeler için modern bir API sunar ancak doğal HTML dönüştürme eksikligi vardir. IronPDF, HTML'den PDF'ye dönüştürme ve gelişmiş uygulama yetenekleriyle işletme uygulamaları için idealdir.

.NET'te HTML'den PDF'ye nasıl render ederim?

IronPDF kullanarak HTML’yi .NET içinde PDF’ye dönüştürebilirsiniz. Tam CSS ve JavaScript desteği sunar, bu da yüksek kaliteli belge dönüşümü sağlar.

Projem için neden QuestPDF tercihim olabilir?

QuestPDF, dinamik ve görsel olarak karmaşık PDF belgeleri gerektiren projeler için idealdir. Akıcı API’si, esnek dizaynlar sağlar fakat yerel HTML-PDF dönüştürme desteği eksiktir.

PDFsharp kullanmanın sınırlamaları nelerdir?

PDFsharp HTML-PDF dönüşümü için yerel destek sunmaz. Temel PDF oluşturma ve düzenleme işlerinde en iyisidir.

IronPDF gelişmiş PDF manipülasyonunu nasıl destekler?

IronPDF gelişmiş özellikler sunar; PDF düzenleme, şifreleme ve PDF/A uyumluluğunu destekler. Güçlü PDF görevlendirmesi gerektiren kurumsal seviyedeki uygulamalar için tasarlanmıştır.

PDFsharp ile görsel olarak çekici PDF'ler oluşturabilir miyim?

PDFsharp, temel PDF oluşturma ve düzenleme için işlevsellik sunar, ancak QuestPDF ve IronPDF gibi karmaşık belgeler için gelişmiş yerleşim ve tasarım özellikleri bulunmaz.

Bu PDF kütüphanelerinin kurulum adımları nelerdir?

Her üç kütüphanede Visual Studio'daki NuGet Paket Yöneticisi üzerinden yüklendi. NuGet Paket Yöneticisi Konsolu'nda Install-Package [LibraryName] komutunu kullanin, burada [LibraryName]'i PDFsharp, QuestPDF veya IronPDF ile değiştirin.

IronPDF kullanımında bir maliyet var mı?

Evet, IronPDF kurulum için ticari bir lisans gerektirir. Kurumsal seviyedeki uygulamalar için uygun kapsamli destek ve gelişmiş özellikler sunar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
QuestPDF Logo

Pahalı yenileme ücretlerinden ve eski ürün güncellemelerinden bıktınız mı?

Mühendislik göç desteğimiz ve daha iyi bir anlaşmayla QuestPDF'den kolay geçiş yapın.

IronPDF Logo

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara