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.
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
Kurulum (NuGet)
iText'in PDF oluşturma için çekirdek paketini indirmek için:
Install-Package itext7

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.

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

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
Çıkış PDF dosyası

Açıklama
PdfWriteriçeriği birMemoryStreamyazar.PdfDocumentPDF'nin iç yapısını yönetir.Documentyü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

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.

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

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
Çıkış PDF dosyası

Açıklama
using IronPdfifadesi, 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.BinaryDatanihai 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
Çıkış PDF

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
Çıktı

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
Çıktı

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
Çıktı

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
Çıktı

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
Çıktı

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



