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

iTextSharp ve IronPDF Arasında PDF Düzenleme için Karşılaştırma

Full Comparison

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

View Full Comparison

Modern .NET uygulamalarında, PDF dosyaları oluşturmak ve yönetmek yaygın bir gereksinimdir—ister raporlar, ister faturalar, ister dijital kayıtlar oluşturuyor olun. Geliştiriciler, bu görev için sıkça üçüncü parti PDF kütüphanelerine yönelirler ve .NET ekosistemindeki en popüler seçeneklerden ikisi IronPDF ve iText (iText'in halefidir).

Her kütüphane, farklı kullanım durumları için güçlü bir araç seti sunar. Peki, bir [bayt dizisinden](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/dd831853(v=vs.120) C# içinde PDF oluşturmak için en uygun hangisi? Bu makale, doğru seçimi yapmanıza yardımcı olmak için karşılaştırmalar, kod örnekleri ve içgörülerle konuyu çözüyor.

İster kurumsal düzeyde uygulamalar, ister küçük dahili araçlar geliştirin, doğru PDF kütüphanesini seçmek size geliştirme süresi kazandırabilir ve sağlam bir çıktı sağlayabilir. Her kütüphanenin sunduğu özellikleri inceleyelim.

PDF Kütüphanelerine Giriş

PDF Kütüphaneleri Ne İçin Kullanılır?

C#'ta PDF kütüphaneleri, geliştiricilerin PDF dosyalarını programlı olarak oluşturmasına, düzenlemesine ve okumasına olanak tanır. Bunlar, geniş bir kullanım yelpazesi sunar, örneğin:

  • Raporlar ve faturalar dışa aktarma
  • Web formlarından dinamik içerik oluşturma
  • HTML sayfaları veya şablonları PDF'lere dönüştürme
  • PDF dosyalarınıza sayfa numaraları, grafikler, görüntüler ve daha fazlası gibi görsel öğeler ekleme
  • Belgeleri birleştirme veya bölme
  • PDF'leri dijital olarak imzalama

Ayrıca veri taşınabilirliğinde ve arşivleme veya erişebilirlik gereksinimleri için PDF/A gibi standartlara uyum sağlamada kritik bir rol oynar.

iText ve IronPDF: En Önde Gelen Adaylar

Mevcut .NET PDF kütüphaneleri arasında, iText ve IronPDF öncü çözümler olarak ortaya çıkmıştır — her biri benzersiz güçleriyle:

  • iText, Java'nın iText'ine dayanan olgun, açık kaynak bir kütüphanedir ve sağlam PDF kontrolü sunar, ancak dik bir öğrenme eğrisi ve lisans sınırlamaları vardır.
  • IronPDF, modern ticari bir kütüphane olup, sadelik, hız ve web entegrasyonuna odaklanarak HTML ve ASP.NET görünümlerini doğrudan PDF dosyalarına dönüştürmenizi sağlar.

Neden Doğru Kütüphaneyi Seçmek Önemlidir

İkisi arasında seçim yapmak sadece bir tercih meselesi değildir — üretkenlik, bakım, performans ve hatta yasal lisans uyumunu etkiler. Hızlı geri dönüş, sık format değişiklikleri veya HTML şablonlarından PDF oluşturma talep eden projeler, hızlı geliştirmenin avantajlarını yaşarken, kurumsal düzeydeki uygulamalar standart uyumu ve uzun vadeli sürdürülebilirliği önceliklendirebilir.

Özellikler Karşılaştırması

.NET İçin iText (iText'in Halefi)

iText, iText'in resmi halefidir ve tamamen yeniden tasarlanmış bir mimari sunar. Ağır yasal, finansal ve devlet sektörlerinde PDF uyumlayıcılarını oluşturmak, düzenlemek ve doğrulamak için uygun güçlü, genişletilebilir bir kütüphanedir. iText paketi, PDF/A, PDF/UA, dijital imzalar, redaksiyon ve form oluşturmayı destekler.

AGPL lisansı altında hâlâ açık kaynak olmasına rağmen, ticari projeler için ticari lisanslama mevcuttur.

iText Anahtar Özellikleri

  • iText'in eski yapısını yeniden düzenleyen modern API
  • Modüler destek: HTML'den PDF'ye, PDF/A, formlar, belirleme, dijital imzalar
  • Kurumsal uygulamalar için yüksek performans
  • PDF/A, erişilebilirlik, uyumluluk için harika

Lütfen dikkate alınCore PDF işlemleri için iText'i kullanmanız gerekecek ve html2pdf gibi isteğe bağlı eklentileri ayrı bir şekilde ekleyebilirsiniz.

Kurulum (NuGet)

iText'in PDF oluşturma için çekirdek paketini indirmek için:

Install-Package itext7

NuGet Paket Yöneticisi Konsolu üzerinden iText kurma

iText, Çözüm Ekranı Paket Yöneticisi aracılığıyla da kurulabilir. Bunu yapmak için, önce Araçlar açılır menüsüne gitmeniz, ardından "NuGet Paket Yöneticisi > Çözümler için NuGet Paketlerini Yönet" seçeneğini bulmanız gerekir.

Visual Studio'nun araçlar açılır menüsü

Daha sonra, iText'i arayın ve "Yükle"ye tıklayın.

iText NuGet paketi sayfası

Kod Örneği: iText Kullanarak Byte Dizisine Göre PDF Belgeleri Oluşturma

using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIText7();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfWithIText7()
    {
        using (var ms = new MemoryStream())
        {
            var writer = new PdfWriter(ms);
            var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
            var doc = new Document(pdf);

            doc.Add(new Paragraph("Hello from iText 7 for .NET!"));

            doc.Close(); // Always close the document to finalize content  
            return ms.ToArray();
        }
    }
}
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIText7();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfWithIText7()
    {
        using (var ms = new MemoryStream())
        {
            var writer = new PdfWriter(ms);
            var pdf = new iText.Kernel.Pdf.PdfDocument(writer);
            var doc = new Document(pdf);

            doc.Add(new Paragraph("Hello from iText 7 for .NET!"));

            doc.Close(); // Always close the document to finalize content  
            return ms.ToArray();
        }
    }
}
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.GeneratePdfWithIText7()
		' Save the PDF to a file
		File.WriteAllBytes("output.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function GeneratePdfWithIText7() As Byte()
		Using ms = New MemoryStream()
			Dim writer = New PdfWriter(ms)
			Dim pdf = New iText.Kernel.Pdf.PdfDocument(writer)
			Dim doc = New Document(pdf)

			doc.Add(New Paragraph("Hello from iText 7 for .NET!"))

			doc.Close() ' Always close the document to finalize content
			Return ms.ToArray()
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

Çıkış PDF dosyası

iText PDF Çıktısı

Açıklama

  • PdfWriter içeriği bir MemoryStream yazar.
  • PdfDocument PDF'nin iç yapısını yönetir.
  • Document yüksek düzeyde içerik eklemek için kullanılır (metin, resimler, tablolar).
  • doc.Close() çağrıldıktan sonra, PDF içeriği tamamen yazılmış ve bir byte dizisi olarak geri dönmeye hazırdır.

Bu örnek, iText'in daha modüler ve okunabilir API'sini eski iText'le karşılaştırıldığında göstermektedir. Ancak, yerel HTML/CSS renderleme desteğinden yoksundur, pdfhtml'i eklemediğiniz sürece, bu ayrı lisanslanmıştır.

iText'in Artıları ve Eksileri

Avantajları:

  • Kapsamlı PDF Kontrolü

    iText, tablolar, formlar ve dijital imzalar gibi PDF öğeleri üzerinde tam kontrol sağlar. Bu, PDF/A veya PDF/UA gibi belirli PDF standartlarına ihtiyaç duyan uyumluluk ağırlıklı uygulamalar için ideal hale getirir.

  • Modüler ve Ölçeklenebilir

    iText modülerdir, bu da sadece ihtiyacınız olan spesifik modülleri (ör. HTML'den PDF'ye dönüşüm için pdfhtml) yüklemenize olanak tanır. Tüm özellikleri kullanmıyorsanız daha hafif bir uygulama sağlar.

  • Karmaşık PDF Standartlarını Destekler

    iText, PDF/A (arşivleme), PDF/UA (erişilebilirlik) ve PDF/X (baskı) gibi ISO standartlarını destekler, bu da onu profesyonel ve hukuki ortamlarda uygun hale getirir.

  • Zengin Belgeler ve Destek

    iText'in kapsamlı dökümantasyonu ve geniş bir topluluğu vardır. Şirket ayrıca profesyonel destek sunarak, ihtiyaç duyulduğunda geliştiricilerin yardım alabilmesini sağlar.

  • Ücretsiz Sürüm Mevcut (AGPL)

    Geliştiriciler, AGPL lisans altında iText'i ücretsiz olarak kullanabilir, bu açık kaynak projeleri veya kişisel kullanım için idealdir.

Dezavantajları:

  • Ticari Kullanım İçin AGPL Lisansı

    iText'in ücretsiz sürümü olmasına rağmen, ticari kullanıcılar AGPL lisansı yükümlülüklerini yerine getirmeli, yani iText kullanan yazılımların kaynak kodunu açmalı veya ticari lisans satın almalıdır.

  • Dik Öğrenme Eğrisi

    iText'in API'si daha karmaşık ve özelliktir, bu da IronPDF gibi daha basit kütüphanelerle karşılaştırıldığında daha dik bir öğrenme eğrisi doğurabilir. Geliştiricilerin düşük seviyeli belge yapısını ve modül temelli mimariyi öğrenmeleri gerekmekte.

  • Basit Görevler İçin Ağır

    iText, temel PDF görevleri için kullanıcı dostu olmayabilir, basit doküman oluşturma veya temel HTML'den PDF'ye dönüştürme gibi işlemler, özellikle IronPDF gibi süreçleri streamline eden kütüphanelerle karşılaştırıldığında daha zahmetli olabilir.

  • HTML'den PDF'ye için Ek Modüller Gerektirir

    iText'te HTML'den PDF'ye dönüşüm sadece ek pdfhtml modülü aracılığıyla mevcut, bu ayrı bir kurulum gerektirir ve IronPDF kadar modern web içeriğini sorunsuz bir şekilde işlemeyebilir.

.NET için IronPDF: Güçlü Bir PDF Kütüphanesi

IronPDF, geliştirici verimliliğine odaklanarak PDF belge oluşturmayı basitleştirmek için tasarlanmış yüksek seviyeli bir .NET kütüphanesidir. HTML içeriği ve stilini render etmek için özellikle etkili olup, modern web'den PDF iş akışları için idealdir.

Anahtar Özellikler:

  • Bayt dizilerinden PDF dosyaları oluşturun ve Adobe Reader yüklemenize gerek kalmadan PDF belgeleriyle çalışın
  • Tam Chromium motorunu kullanarak HTML'den PDF'ye doğrudan render etme, HTML içeriğinden PDF belgeleri oluşturma
  • MVC Görünümleri, Razor Sayfaları ve yerel/uzak URL'lerle çalışır
  • Görüntü dosyalarını, JavaScript, CSS ve kutudan çıkar çıkmaz uyarlanabilir düzenleri destekler
  • Kullanımı kolay sözdizimi ve minimum kurulum gerektirir
  • Süresiz lisanslama ve AGPL kısıtlamaları yoktur

Installing IronPDF

IronPDF, NuGet üzerinden de yüklenebilir, NuGet Paket Yöneticisi Konsolu'nda şu komutu çalıştırarak:

Install-Package IronPdf

Paket Yöneticisi Konsolu üzerinden IronPDF yükleme

Alternatif olarak, Çözüm ekranı için NuGet paket yöneticisi aracılığıyla yükleyebilirsiniz. "Tools > NuGet Package Manager > Manage NuGet Packages for Solution" navigasyonuyla yapın.

Visual Studio'da Araçlar açılır menüsü

Daha sonra IronPDF'yi arayın ve "Install" seçeneğine tıklayın.

IronPDF NuGet paket yöneticisi ekranı

Kurulumdan sonra, tam HTML sayfalarını, ek modüller gerekmeden saniyeler içinde PDF'ye dönüştürmeye başlayabilirsiniz. Modern CSS, JavaScript ve ek yapılandırma gerektirmeyen etkileşimli web içeriğini destekler.

Kod Örneği: IronPDF ile Byte Array'den PDF Belgeleri Oluşturma

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIronPdf();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
        return pdfDoc.BinaryData;
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfWithIronPdf();
        // Save the PDF to a file
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
        return pdfDoc.BinaryData;
    }
}
Imports IronPdf
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.GeneratePdfWithIronPdf()
		' Save the PDF to a file
		File.WriteAllBytes("output.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function GeneratePdfWithIronPdf() As Byte()
		Dim renderer = New ChromePdfRenderer()
		Dim pdfDoc = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>")
		Return pdfDoc.BinaryData
	End Function
End Class
$vbLabelText   $csharpLabel

Çıkış PDF dosyası

IronPDF Çıkışı

Açıklama

  • using IronPdf ifadesi, tüm PDF ile ilgili sınıflara erişim için IronPDF kütüphanesini dahil eder.
  • var renderer = new ChromePdfRenderer() headless Chromium motoru tarafından desteklenen yeni bir HTML'den PDF'ye dönüştürücü oluşturur.
  • renderer.RenderHtmlAsPdf(...) verilen HTML dizesini bir PDF dokümanına dönüştürür. Ayrıca dosya yollarını veya URL'leri de verebilirsiniz.
  • pdfDoc.BinaryData nihai PDF'yi bir bayt dizisi olarak döndürür, kaydetmek, akış yapmak veya veritabanı depolaması için hazır.

IronPDF'nin Artıları ve Eksileri

Avantajları:

  • Çabasız HTML'den PDF'ye Dönüştürme

    Tam stil ile HTML, CSS ve JavaScript içeriğini doğrudan PDF'lere render etme, Bootstrap ve özel fontlar da dâhil — karmaşık düzen koduna veya ek modüllere gerek yok.

  • Hızlı Başlangıç ve Sezgisel API

    Temiz sözdizimi ile sadece birkaç satır kodla tamamen stili oluşturulmuş PDF dosyaları oluşturun, tam .NET Core ve .NET Framework uyumluluğu ile.

  • Web Teknolojileri için Kapsamlı Destek\ IronPDF, modern CSS, SVG'ler ve medya sorgularına sahip JavaScript'i destekler—ki bu, kütüphanelerin çoğu, Chromium gibi başsız tarayıcılar kullanmadıkça zorlanır (IronPDF dahili olarak kullanır).

  • Yerleşik Görsel ve Varlık Yönetimi\ Resimleri, yerel dosyaları kolayca ekleyin veya uzak URL'lerden varlıkları ek yapılandırma olmadan çekin.

  • Süresiz Lisanslama & AGPL Yok\ iText'in aksine, IronPDF açık kaynak AGPL zorunluluklarının sınırlamaları olmaksızın esnek ticari lisanslama sunar.

  • MVC ve Razor Görünümleri için Harika\ ASP.NET uygulamalarındaki .cshtml Razor Görünümlerini kolayca yazdırılabilir PDF'lere dönüştürür.

Dezavantajları:

  • Ticari Kullanım Lisans Gerektirir\ Ücretsiz bir deneme sürümü mevcut olmakla birlikte, IronPDF açık kaynak kodlu değildir. Bütçesi sıkışık projeler lisans maliyetlerini değerlendirmek zorunda kalabilir.

  • Daha Büyük Başlangıç Paketi Boyutu\ Başsız Chromium motoru paketlediğinden, NuGet paketi bazı alternatiflerden daha büyüktür.

Uygulamalı Kod Örnekleri Karşılaştırıldı

Bu bölümdeki aşağıdaki kod örnekleri, bu kütüphaneleri eylem halinde gösterirken, aynı görevler kullanılarak IronPDF ve iText karşılaştırılır. Her iki kütüphane de aynı senaryolar ile denenecektir: bir URL'den PDF oluşturmak, bir görüntüyü PDF olarak çıkış vermek ve stilli HTML'yi PDF'ye dönüştürmek, bunlar yapılırken PDF içeriğimizi byte dizileri kullanarak işledik. Bu, geliştiricilerin bu ortak kullanım durumlarının her kütüphane tarafından nasıl ele alındığını değerlendirmesini sağlayacaktır.

1. Bir URL'den Byte Dizisi Kullanarak Basit PDF Oluşturun

IronPDF

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfFromUrlWithIronPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfFromUrlWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitForJavaScript(5000);
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

        var pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
        return pdf.BinaryData;
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.GeneratePdfFromUrlWithIronPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] GeneratePdfFromUrlWithIronPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.WaitForJavaScript(5000);
        renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

        var pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
        return pdf.BinaryData;
    }
}
Imports IronPdf
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.GeneratePdfFromUrlWithIronPdf()

		' Save the PDF to a file
		File.WriteAllBytes("ironpdf-from-url.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function GeneratePdfFromUrlWithIronPdf() As Byte()
		Dim renderer = New ChromePdfRenderer()
		renderer.RenderingOptions.EnableJavaScript = True
		renderer.RenderingOptions.WaitForJavaScript(5000)
		renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

		Dim pdf = renderer.RenderUrlAsPdf("https://www.apple.com")
		Return pdf.BinaryData
	End Function
End Class
$vbLabelText   $csharpLabel

Çıkış PDF

URL'den PDF'ye IronPDF çıkışı

IronPDF, JavaScript ve CSS desteği ile web sayfalarının başsız bir Chromium motoruyla piksel mükemmelliğinde renderını kullanır.

iText

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using System.Net.Http;
using System.Threading.Tasks;
using iText.Html2pdf;
using System.IO;

class Program
{
    static async Task Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = await pdfGenerator.GeneratePdfFromUrlWithIText7Async();

        // Save the PDF to a file
        File.WriteAllBytes("itext7-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public async Task<byte[]> GeneratePdfFromUrlWithIText7Async()
    {
        using var httpClient = new HttpClient();
        string html = await httpClient.GetStringAsync("https://www.apple.com");

        using var stream = new MemoryStream();
        HtmlConverter.ConvertToPdf(html, stream);
        return stream.ToArray();
    }
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using System.Net.Http;
using System.Threading.Tasks;
using iText.Html2pdf;
using System.IO;

class Program
{
    static async Task Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = await pdfGenerator.GeneratePdfFromUrlWithIText7Async();

        // Save the PDF to a file
        File.WriteAllBytes("itext7-from-url.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public async Task<byte[]> GeneratePdfFromUrlWithIText7Async()
    {
        using var httpClient = new HttpClient();
        string html = await httpClient.GetStringAsync("https://www.apple.com");

        using var stream = new MemoryStream();
        HtmlConverter.ConvertToPdf(html, stream);
        return stream.ToArray();
    }
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports System.Net.Http
Imports System.Threading.Tasks
Imports iText.Html2pdf
Imports System.IO

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = Await pdfGenerator.GeneratePdfFromUrlWithIText7Async()

		' Save the PDF to a file
		File.WriteAllBytes("itext7-from-url.pdf", pdfBytes)
	End Function
End Class

Friend Class PdfGenerator
	Public Async Function GeneratePdfFromUrlWithIText7Async() As Task(Of Byte())
		Dim httpClient As New HttpClient()
		Dim html As String = Await httpClient.GetStringAsync("https://www.apple.com")

		Dim stream = New MemoryStream()
		HtmlConverter.ConvertToPdf(html, stream)
		Return stream.ToArray()
	End Function
End Class
$vbLabelText   $csharpLabel

Çıktı

iText URL'den PDF çıktısı

iText, HttpClient ile ham HTML'yi çeker ve HtmlConverter kullanarak renderler, ancak JavaScript yürütmesini desteklemez (iText'in resmi dökümantasyonunda belirtilmiş olup, JavaScript ön işleme amacıyla Selenium veya benzeri tarayıcı otomasyonlarının kullanılmasını önerir) ve sınırlı CSS stiline sahiptir. iText, 7.1.15 (2021) sürümünde kısmi flexbox desteği eklemiş olsa da, birçok CSS3 özelliği, özellikle karmaşık modern düzenler için desteklenmemektedir.

2. Bir Görüntüden Byte Dizisi Kullanarak Yeni PDF Dosyası Oluşturma

IronPDF

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        var pdf = ImageToPdfConverter.ImageToPdf("example.png");
        return pdf.BinaryData;
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        var pdf = ImageToPdfConverter.ImageToPdf("example.png");
        return pdf.BinaryData;
    }
}
Imports IronPdf
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.CreatePdfWithImage()

		' Save the PDF to a file
		File.WriteAllBytes("ironpdf-with-image.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function CreatePdfWithImage() As Byte()
		Dim pdf = ImageToPdfConverter.ImageToPdf("example.png")
		Return pdf.BinaryData
	End Function
End Class
$vbLabelText   $csharpLabel

Çıktı

IronPDF görselden PDF'ye çıkış

ImageToPdfConverter aracı ile IronPDF'in kolay görselden PDF üretimi. Bununla, PNG dosyaları veya JPG'ler gibi görüntülerden kolayca PDF dosyaları oluşturabilirsiniz.

iText

using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("iText-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        using var ms = new MemoryStream();
        using var writer = new PdfWriter(ms);
        using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(writer);
        var document = new Document(pdfDoc);

        var img = new Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"));
        document.Add(img);
        document.Close();

        return ms.ToArray();
    }
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.IO.Image;
using iText.Layout.Element;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreatePdfWithImage();

        // Save the PDF to a file
        File.WriteAllBytes("iText-with-image.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreatePdfWithImage()
    {
        using var ms = new MemoryStream();
        using var writer = new PdfWriter(ms);
        using var pdfDoc = new iText.Kernel.Pdf.PdfDocument(writer);
        var document = new Document(pdfDoc);

        var img = new Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"));
        document.Add(img);
        document.Close();

        return ms.ToArray();
    }
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.IO.Image
Imports iText.Layout.Element
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.CreatePdfWithImage()

		' Save the PDF to a file
		File.WriteAllBytes("iText-with-image.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function CreatePdfWithImage() As Byte()
		Dim ms = New MemoryStream()
		Dim writer = New PdfWriter(ms)
		Dim pdfDoc = New iText.Kernel.Pdf.PdfDocument(writer)
		Dim document As New Document(pdfDoc)

		Dim img = New Image(ImageDataFactory.Create("https://itextpdf.com/sites/default/files/2018-11/iText%207%20Product%20software%20-%20webimages_509x339px_V2_iText%207%20Core.png"))
		document.Add(img)
		document.Close()

		Return ms.ToArray()
	End Function
End Class
$vbLabelText   $csharpLabel

Çıktı

iText PDF resim çıktısı

Manuel belge yerleşimi kurma ve ImageDataFactory kullanarak açıkça görsel ekleme.

3. Stilli HTML İçeriğini Byte Dizisi Kullanarak PDF'ye Dönüştürme

IronPDF

using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to IronPDF</h1>
                <p>This is a simple PDF document generated using IronPDF.</p>
            </body>
        </html>";

        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
        return pdf.BinaryData;
    }
}
using IronPdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the PDF to a file
        File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to IronPDF</h1>
                <p>This is a simple PDF document generated using IronPDF.</p>
            </body>
        </html>";

        var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(html);
        return pdf.BinaryData;
    }
}
Imports IronPdf
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.CreateStyledPdf()

		' Save the PDF to a file
		File.WriteAllBytes("ironpdf-styled-html.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function CreateStyledPdf() As Byte()
		Dim html As String = "
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to IronPDF</h1>
                <p>This is a simple PDF document generated using IronPDF.</p>
            </body>
        </html>"

		Dim pdf = (New ChromePdfRenderer()).RenderHtmlAsPdf(html)
		Return pdf.BinaryData
	End Function
End Class
$vbLabelText   $csharpLabel

Çıktı

IronPDF stili HTML'den PDF'ye çıkış

IronPDF, Chromium motoru sayesinde etiketlerde veya harici stil dosyalarında tam CSS desteği sunar.

iText + pdfHTML

using iText.Kernel.Pdf;
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the new document to the specified file location
        File.WriteAllBytes("iText-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to iText 7</h1>
                <p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
            </body>
        </html>";

        using var ms = new MemoryStream();
        ConverterProperties properties = new ConverterProperties();
        HtmlConverter.ConvertToPdf(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties);
        return ms.ToArray();
    }
}
using iText.Kernel.Pdf;
using iText.Html2pdf;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var pdfGenerator = new PdfGenerator();
        byte[] pdfBytes = pdfGenerator.CreateStyledPdf();

        // Save the new document to the specified file location
        File.WriteAllBytes("iText-styled-html.pdf", pdfBytes);
    }
}

class PdfGenerator
{
    public byte[] CreateStyledPdf()
    {
        string html = @"
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to iText 7</h1>
                <p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
            </body>
        </html>";

        using var ms = new MemoryStream();
        ConverterProperties properties = new ConverterProperties();
        HtmlConverter.ConvertToPdf(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties);
        return ms.ToArray();
    }
}
Imports iText.Kernel.Pdf
Imports iText.Html2pdf
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pdfGenerator As New PdfGenerator()
		Dim pdfBytes() As Byte = pdfGenerator.CreateStyledPdf()

		' Save the new document to the specified file location
		File.WriteAllBytes("iText-styled-html.pdf", pdfBytes)
	End Sub
End Class

Friend Class PdfGenerator
	Public Function CreateStyledPdf() As Byte()
		Dim html As String = "
        <html>
            <head>
                <style>
                    body { 
                        background-color: #f0f0f0; 
                        margin: 20px; 
                        padding: 20px; 
                        border-radius: 5px; 
                        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                    }
                    h1 { 
                        color: navy;
                        font-size: 32px;   
                        text-align: center;
                       }
                    p { 
                        font-size: 16px; 
                        font-weight: bold;
                      }
                </style>
            </head>
            <body>
                <h1>Welcome to iText 7</h1>
                <p>This is a simple PDF document generated using iText 7 and pdfHTML.</p>
            </body>
        </html>"

		Dim ms = New MemoryStream()
		Dim properties As New ConverterProperties()
		HtmlConverter.ConvertToPdf(New MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), ms, properties)
		Return ms.ToArray()
	End Function
End Class
$vbLabelText   $csharpLabel

Çıktı

iText stilli HTML'den PDF çıktısı

HTML dönüştürme görevlerini yönetmek için ücretli pdfHTML eklentisinin kurulmasını gerektirir.

Karşılaştırma Özeti

Özellik IronPDF iText (with pdfHTML)
URL'den PDF'ye Dönüştürme Tam Chromium renderı HTML'i alma, yerel JS desteği yok
Görsel Ekle HTML yoluyla veya özel görsel damgalama aracıyla gömme Manuel görsel fabrikası
Stili HTML Render Etme Tam CSS desteği Sadece pdfHTML ile CSS desteği
Byte Dizisi Döndürüyor Evet Evet
Kurulum Karmaşıklığı Basit Orta (manuel yerleşim)
Çıkış Kalitesi Piksel mükemmelliğinde İyi ama statik

Sonuç: Hangi .NET Kütüphanesini Seçmelisiniz?

IronPDF ve iText arasında seçim yapmak, projenizin ihtiyaçlarına bağlıdır — ancak geliştirici deneyimi, kullanım kolaylığı ve modern renderleme doğruluğu söz konusu olduğunda, IronPDF açıkça öne çıkar.

Dinamik HTML içeriği ile çalışıyorsanız, web render işlemlerini yapmanız veya URL'ler üzerinden PDF dosyaları oluşturmanız gerekiyor ve tam JavaScript ve CSS desteği gerekiyorsa, IronPDF'in Chromium tabanlı engine'ı benzersiz bir hassasiyet sunar. Kendi sezgisel API'si ve hızlı kurulumu ile gerçek dünya uygulamalarında hızlı geliştirme ve üretim için idealdir — özellikle byte dizileri, dosya streamleri veya web tabanlı PDF üretimi ile çalışırken.

Öte yandan, iText, daha geleneksel, düzen odaklı bir yaklaşıma sahip güçlü ve saygı gören bir kütüphanedir. Belge yapısı üzerinde sağlam kontrol sunar ve hassas manipülasyon yapan geliştiriciler için harikadır, ancak daha dik bir öğrenme eğrisi vardır ve modern HTML render özelliklerinden yoksundur.

Ana sonuç:

  • Piksel mükemmelliğinde çıktı istiyorsanız, modern web içeriğinden, stilli HTML'den veya hızlı prototiplemeden? IronPDF'i tercih edin.
  • Ayrıntılı kontrolle genişletilmiş PDF oluşturma araçlarına mı ihtiyacınız var? iText doğru bir seçim olabilir.

IronPDF ile başlamaya hazır mısınız? Ücretsiz deneme sürümünü indirin ve sadece birkaç satır C# kod ile profesyonel, byte dizi tabanlı PDF'leri ne kadar kolay oluşturabileceğinizi görün.

Lütfen dikkate alıniText, ilgili sahibinin tescilli markasıdır. Bu site, iText ile ilişkili, onaylanmış veya sponsor olunmuş 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.

Sıkça Sorulan Sorular

C# içinde bir bayt dizisini PDF'ye nasıl dönüştürebilirim?

C# içinde bir bayt dizisini PDF'ye dönüştürmek için IronPDF kullanabilirsiniz. Bayt dizisini `PdfDocument.FromBytes` yöntemiyle IronPDF belgesine yükleyerek verileri ayrıştırır ve bir PDF belgesi oluşturur.

HTML'den PDF'ye dönüşümde IronPDF kullanmanın avantajları nelerdir?

IronPDF, modern CSS ve JavaScript'i destekleyen başlıksız Chromium motorunu kullanarak HTML'yi PDF'ye dönüştürmede ustadır. Bu, dinamik web içeriğini piksel mükemmelliğinde PDF belgelere dönüştürmek için idealdir.

PDF oluşturma için IronPDF kullanımının iText 7'ye göre başlıca avantajları nelerdir?

IronPDF, HTML'den PDF'ye dönüşüm için daha basit bir API ve daha hızlı kurulum sunar, CSS ve JavaScript için tam destek sağlar. Hızlı geliştirme ve web içeriği entegrasyonu gerektiren uygulamalar için özellikle uygundur.

iText 7, PDF uyumluluğuyla nasıl başa çıkıyor?

iText 7, PDF/A, PDF/UA ve PDF/X gibi standartları destekleyen uyum yoğun sanayiler için tasarlanmıştır. PDF oluşturma üzerinde sağlam bir kontrol sağlar ve uyumluluğun kritik olduğu uygulamalar için uygundur.

.NET projesine IronPDF'i kurma süreci nedir?

IronPDF'i kurmak için Visual Studio'da NuGet Paket Yöneticisini kullanabilirsiniz. Projenize eklemek için Paket Yöneticisi Konsolunda `Install-Package IronPdf` komutunu çalıştırın.

IronPDF, ASP.NET görünümlerinden PDF oluşturabilir mi?

Evet, IronPDF, ASP.NET görünümlerini doğrudan PDF belgelere dönüştürebilir. Bu özellik, geliştiricilerin karmaşık düzen ve stillere sahip web sayfalarını kolayca PDF'ye dönüştürmesine olanak tanır.

IronPDF kullanmanın en çok fayda sağladığı uygulama türleri nelerdir?

Dinamik web içeriğini PDF'ye dönüştürmesi gereken, örneğin raporlar ve faturalar, uygulamalar IronPDF'den en çok faydalananlardır. Hızlı kurulumu ve web teknolojilerine desteği, sık güncelleme ve modern tasarım gerektiren projeler için idealdir.

iText 7'nin modüler mimarisi kullanımını nasıl etkiler?

iText 7'nin modüler mimarisi, HTML dönüşümü veya dijital imzalama gibi belirli PDF fonksiyonlarının gerektiği şekilde eklenmesine izin verir. Bu esneklik sağlar ancak her modül için ek öğrenme ve kurulum gerektirebilir.

IronPDF ve iText 7 arasındaki lisans farkları nelerdir?

IronPDF, ticari uygulamalar için uygun süresiz lisanslama sunar, AGPL kısıtlamaları olmadan. Buna karşılık, iText 7 açık kaynak projeleri için AGPL lisansı altında mevcuttur ve ticari kullanım için bir ücretli lisans gerektirir.

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