Byte Dizisinden PDF Oluşturma C# iTextSharp (IronPDF ile)
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şturma ve yönetme, raporlar, faturalar veya dijital kayıtlar oluşturmanız gerekse de yaygın bir gerekliliktir. Geliştiriciler genellikle bu görev için üçüncü taraf PDF kütüphanelerine başvurur ve .NET ekosisteminde en popüler iki seçenek IronPDF ve iText 7 (iTextSharp'ın halefidir).
Her kütüphane, farklı kullanım durumları için güçlü bir araç seti sunar. Ancak bir bayt dizisinden C#'da PDF oluşturmak için hangisi en uygun? Bu makale, .NET geliştiricilerine doğru seçimi yapmalarında yardımcı olmak için karşılaştırmalar, kod örnekleri ve içgörüler ile her şeyi detaylandırır.
İster kurumsal düzeyde uygulamalar oluşturuyor olun ister küçük dahili araçlar geliştiriyor olun, doğru PDF kütüphanesi seçimi geliştirme süresinden tasarruf sağlar ve sağlam çıktı sağlar. Her kütüphanenin sunduklarını keşfedelim.
PDF Kütüphanelerine Giriş
PDF Kütüphaneleri Ne İçin Kullanılır?
C# dilindeki PDF kütüphaneleri, geliştiricilere PDF dosyalarını programatik olarak oluşturma, düzenleme ve okuma olanağı sağlar. Geniş bir kullanım alanı sunarlar, ö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 fazla görsel öğe ekleme
- Belgeleri birleştirme veya bölme
- PDF'leri dijital olarak imzalama
Ayrıca verilerin taşınabilirliği ve arşivleme veya erişilebilirlik gereksinimleri için PDF/A gibi standartlara uyumluluk sağlama konusunda da önemli bir rol oynarlar.
iTextSharp ve IronPDF: En İyi Yarışmacılar
Mevcut .NET PDF kütüphaneleri arasında, iTextSharp ve IronPDF, her biri farklı güçlü yönleriyle öne çıkarak lider çözümler olarak ortaya çıkmıştır:
- iTextSharp, Java'nın iText'ine dayanan, sağlam PDF kontrolü sunan olgun bir açık kaynak kütüphanesidir, ancak dik bir öğrenme eğrisi ve lisanslama şartları vardır.
- IronPDF, modern bir ticari kütüphanedir, sadelik, hız ve web entegrasyonu üzerine odaklanır, HTML ve ASP.NET görünümlerini doğrudan PDF dosyalarına dönüştürmenizi sağlar.
Doğru Kütüphaneyi Seçmek Neden Önemlidir
İki kütüphane arasında seçim yapmak, sadece bir tercih meselesi değildir—verimliliği, bakımı, performansı ve hatta yasal lisans uyumluluğunu etkiler. Hızlı sonuç, sık format değişiklikleri veya HTML şablonlarından PDF oluşturma gerektiren projeler hızlı geliştirmeden faydalanırken, kurumsal düzeyde uygulamalar standartlara uyumluluk ve uzun vadeli sürdürülebilirliğe öncelik verebilir.
Özellikler Karşılaştırması
iText 7 for .NET (iTextSharp'ın Halefi)
iText 7, iTextSharp'ın resmi halefidir ve tamamen yeniden tasarlanmış bir mimari sunar. Yasal, finans ve hükümet gibi uyumluluğun yüksek olduğu endüstriler için PDF oluşturma, düzenleme ve doğrulama için uygun güçlü, genişletilebilir bir kütüphanedir. iText 7 paketi, PDF/A, PDF/UA, dijital imzalar, kanamalar ve form oluşturma desteği içerir.
Hala AGPL lisansı altında açık kaynak olmasına rağmen, tescilli projeler için ticari lisanslama da mevcuttur.
iText 7 Başlıca Özellikleri
- iTextSharp'ın eski yapısı yerine modern API
- Modüler destek: HTML'den PDF'e, PDF/A, formlar, kanama, dijital imzalar
- Kurumsal uygulamalar için yüksek performans
- PDF/A, erişilebilirlik, uyumluluk için en iyisi
Kurulum (NuGet)
PDF oluşturma için iText 7'nin çekirdek paketini indirmek için:
Install-Package itext7

iText 7'yi, Çözüm ekranında Paket Yöneticisi üzerinden de kurabilirsiniz. Bunu yapmak için önce Araçlar açılır menüsüne gitmeli ve ardından "NuGet Paket Yöneticisi > Çözüm için NuGet Paketlerini Yönet" seçeneğini bulmalısınız.

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

Örnek Kod: iText 7 kullanarak Bayt Dizisinden 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
Çıktı PDF dosyası

Açıklama
PdfWriteriçerikleri birMemoryStream'e yazar.PdfDocumentPDF'nin iç yapısını yönetir.Documentyüksek düzeyde içerik (yazı, resim, tablolar) eklemek için kullanılır.doc.Close()çağrıldıktan sonra, PDF içeriği tamamen yazılır ve bayt dizisi olarak döndürülmeye hazır hale gelir.
Bu örnek, iTextSharp'a kıyasla iText 7'nin daha modüler ve okunabilir APIsini sergiler. Ancak, html2pdf'i içermediğiniz sürece HTML/CSS işlemlerini doğal olarak desteklemez, ki bu ayrı lisanslanır.
iText 7'nin Artıları ve Eksileri
Artıları:
-
Kapsamlı PDF Kontrolü\ iText 7, 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 gerektiren uygulamalar için idealdir.
-
Modüler ve Ölçeklenebilir\ iText 7 modülerdir, bu da yalnızca ihtiyaç duyduğunuz belirli modülleri (örneğin, HTML'den PDF'e dönüşüm için pdfhtml) yüklemenize olanak tanır. Bu, tüm özellikleri kullanmıyorsanız daha hafif bir uygulama sağlar.
-
Karmaşık PDF Standartlarını Destekler\ iText 7, PDF/A (arşivleme), PDF/UA (erişilebilirlik) ve PDF/X (baskı) gibi ISO standartlarını destekler, bu da uyumluluğun kritik olduğu profesyonel ve yasal ortamlarda uygun hale getirir.
-
Zengin Belgeler ve Destek\ iText 7'nin kapsamlı belgeleri ve geniş bir topluluğu vardır. Şirket ayrıca geliştiricilerin ihtiyaç duyduğunda yardım almasını sağlayan profesyonel destek sunar.
- Ücretsiz Sürüm Mevcut (AGPL)\ Geliştiriciler, AGPL lisansı altında iText 7'yi ücretsiz olarak kullanabilir, bu da açık kaynak projeleri veya kişisel kullanım için idealdir.
Eksileri:
-
Ticari Kullanım için AGPL Lisansı\ iText 7'nin ücretsiz bir sürümü olsa da, ticari kullanıcılar AGPL lisansına uymak zorundadır, bu da iText 7'yi kullanan herhangi bir yazılımın kaynak kodunu yayımlamayı veya ticari bir lisans için ödeme yapmayı gerektirir.
-
Dik Öğrenme Eğrisi\ iText 7'nin API'si daha karmaşık ve özellik açısından zengindir, bu da IronPDF gibi daha basit kütüphanelere kıyasla daha dik bir öğrenme eğrisi ile sonuçlanabilir. Geliştiricilerin, düşük seviyeli belge yapısıyla ve modül bazlı mimarisi ile tanışmaları gereklidir.
-
Basit Görevler için Ağır\ iText 7, basit PDF görevleri, örneğin basit belge oluşturma veya temel HTML'den PDF'ye dönüşüm için hantal hissedilebilir, özellikle IronPDF gibi işlemi basitleştiren kütüphanelerle karşılaştırıldığında.
- HTML'den PDF'e için Dış Modüller Gerektirir\ iText 7'deki HTML'den PDF'e dönüşüm yalnızca ek pdfhtml modülü ile mevcut, ki bu ayrı bir kurulum gerektirir ve modern web içeriğini IronPDF kadar sorunsuz işleyemeyebilir.
IronPDF for .NET: 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 işlemede özellikle etkilidir, bu da modern web'den PDF'e iş akışları için idealdir.
Başlıca Özellikler:
- Bayt dizilerinden PDF dosyaları oluşturun ve PDF belgeleriyle çalışmak için Adobe Reader yüklemeye gerek duymayın
- Tüm Chromium motorunu kullanarak doğrudan HTML'den PDF'e işleme yaparak HTML içeriğinden PDF belgeleri oluşturma
- MVC Görünümleri, Razor Sayfaları ve yerel/uzak URL'lerle çalışır
- Kutudan çıktığı gibi resim dosyalarını, JavaScript, CSS ve duyarlı düzenleri destekler
- Kullanımı kolay sözdizimi ve minimum kurulum gerektirir
- Süresiz lisanslama ve AGPL kısıtlamaları yok
IronPDF Kurulumu
IronPDF, NuGet üzerinden de kurulabilir, NuGet Paket Yöneticisi Konsolu'nda aşağıdaki komutu çalıştırarak:
Install-Package IronPdf

Alternatif olarak, Çözüm ekranındaki NuGet paket yöneticisi üzerinden de kurabilirsiniz. Bunu yapmak için, "Araçlar > NuGet Paket Yöneticisi > Çözüm için NuGet Paketlerini Yönet" yolunu izleyin.

Sonra IronPDF'i arayın ve "Yükle"ye tıklayın.

Kurulumdan sonra tam HTML sayfalarını saniyeler içinde PDF'e dönüştürmeye başlayabilirsiniz—ek modüller gerektirmez. Modern CSS, JavaScript ve hatta etkileşimli web içeriğini ek bir yapılandırma olmaksızın destekler.
Örnek Kod: IronPDF ile Bayt Dizisinden 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
Çıktı PDF dosyası

Açıklama
using IronPdfifadesi, tüm PDF ile ilgili sınıflara erişim için IronPDF kütüphanesini içeri aktarır.var renderer = new ChromePdfRenderer(), başsız bir Chromium motorunun gücünü kullanan yeni bir HTML'den PDF'e dönüştürücü oluşturur.renderer.RenderHtmlAsPdf(...), verilen HTML dizesini bir PDF belgesine dönüştürür. Dosya yollarını veya URL'leri de geçirebilirsiniz.pdfDoc.BinaryData, nihai PDF'i bir bayt dizisi olarak döndürür, kaydetmeye, akışa veya veritabanı depolamaya hazır hale gelir.
IronPDF'in Artıları ve Eksileri
Artıları:
-
Kolay HTML'den PDF'e İşleme\ Tam stil içeriğiyle, Bootstrap ve özel yazı tipleri de dahil olmak üzere HTML, CSS ve JavaScript içeriklerini doğrudan PDF'lere dönüştürün—karmaşık düzen kodlarına veya ek modüllere gerek kalmaz.
-
Hızlı Başlangıç & Sezgisel API\ Tamamen stillendirilmiş PDF dosyalarını sadece birkaç satır kodla oluşturun, temiz bir sözdizimi ve tam .NET Core ve .NET Framework uyumluluğu ile.
-
Web Teknolojileri için Kapsamlı Destek\ IronPDF, JavaScript, modern CSS, SVG'ler ve medya sorgularını destekler—çoğu kütüphanenin başsız tarayıcılar gibi Chromium kullanmadan mücadele ettiği bir şey (IronPDF bunu dahili olarak yapıyor).
-
Yerleşik Resim ve Varlık Yönetimi\ Kolayca görüntüleri, yerel dosyaları dahil edin veya uzaktaki URL'lerden varlıklar çekin, ek bir yapılandırma gerektirmeden.
-
Süresiz Lisanslama & AGPL Yok\ iText 7'nin aksine, IronPDF, açık kaynak AGPL yükümlülüklerinin kısıtlamaları olmaksızın esnek ticari lisanslama sunar.
- MVC & Razor Görünümleri için Mükemmel\ ASP.NET uygulamalarındaki .cshtml Razor Görünümlerini kesintisiz bir şekilde yazdırılabilir PDF'lere dönüştürür.
Eksileri:
-
Ticari Kullanım için Lisans Gerektirme\ IronPDF açık kaynaklı değildir ancak ücretsiz deneme sürümü mevcuttur. Kısıtlı bütçeye sahip projelerin lisans maliyetlerini değerlendirmesi gerekebilir.
- Daha Büyük Başlangıç Paket Boyutu\ Başsız bir Chromium motoru içerdiğinden, NuGet paketi bazı alternatiflerinden daha ağırdır.
Karşılaştırmalı Pratik Kod Örnekleri
Bu bölümdeki aşağıdaki kod örnekleri, bu kütüphanelerin kullanımda nasıl olduklarını gösteriyor ve bu sırada aynı görevler üzerinden IronPDF ve iText 7 karşılaştırılacak. Her iki kütüphane de aynı senaryolardan geçirilecek: Bir URL'den PDF oluşturma, bir resmi PDF olarak işleme ve stil verilmiş HTML'yi PDF'ye dönüştürme, tüm bunlar PDF içeriğimizi yönetmek için bayt dizilerini kullanırken yapılır. Bu, geliştiricilerin her bir kütüphanenin bu yaygın kullanım durumlarına nasıl yaklaştığını değerlendirmesine olanak tanır.
1. Bir URL'den Bayt Dizisi Kullanarak Basit bir 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
Çıktı PDF

IronPDF web sayfalarını piksellerine kadar mükemmel şekilde işlemek için eksiksiz JavaScript ve CSS desteğiyle başsız bir Chromium motoru kullanır.
iText 7
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 7, HttpClient ile ham HTML'yi alır ve HtmlConverter kullanarak işler, ancak JavaScript yürütme desteği yoktur (iText'in resmi belgelerinde, JavaScript ön işleme için Selenium veya benzeri bir tarayıcı otomasyonunun kullanılması önerilmektedir) ve kısıtlı CSS stil yapma sunar. iText7, sürüm 7.1.15'te (2021) kısmi flexbox desteği eklemiş olmasına rağmen, birçok CSS3 özelliği, özellikle karmaşık modern düzenler için desteklenmemektedir.
2. Bir Resimden Yeni bir PDF Dosyası Oluşturun
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ı

IronPDF'ın ImageToPdfConverter aracı ile kolay resimden PDF oluşturma. Bunlar sayesinde PNG dosyaları veya JPG'ler gibi resimlerden kolaylıkla PDF dosyaları oluşturabilirsiniz.
iText 7
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ı

Belgelerin düzenini elle oluşturma ve ImageDataFactory kullanarak açık bir şekilde resim ekleme.
3. Stil Verilmiş HTML İçeriğini Bayt Dizisi Kullanarak PDF'ye Dönüştürün
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, etiketlerdeki veya harici stil sayfalarındaki CSS'yi, Chromium motoru sayesinde tamamen destekler.
iText 7 + 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 gerçekleştirmek için ücretli pdfHTML eklentisinin kurulmasını gerektirir.
Karşılaştırma Özeti
| Özellik | IronPDF | iText 7 (pdfHTML ile) |
|---|---|---|
| URL'den PDF'ye Dönüştürme | Tam Chromium işleme | HTML çekimi, yerel JS desteği yok |
| Resim Ekleme | HTML aracılığyla veya adanmış resim damgalama aracı ile gömme | Manuel resim fabrikası |
| Stil Verilmiş HTML'yi İşleme | Tam CSS desteği | pdfHTML aracılığıyla sadece CSS desteği |
| Bayt Dizisi Döndürür | Evet | Evet |
| Kurulum Karmaşıklığı | Basit | Orta (manuel düzen) |
| Çıktı Kalitesi | Piksel mükemmelliği | İyi ama statik |
Sonuç: Hangi .NET Kütüphanesini Seçmelisiniz?
IronPDF ile iText 7 arasında seçim yaparken, projenizin ihtiyaçları belirleyici olur - ancak geliştirici deneyimi, kullanım kolaylığı ve modern işleme hassasiyeti açısından, IronPDF açıkça öne çıkar.
Dinamik HTML içeriği ile çalışıyorsanız, web işleme veya tam JavaScript ve CSS desteği ile URL'den PDF oluşturmanız gerekiyorsa, IronPDF'in Chromium tabanlı motoru eşsiz bir sadakat sunar. Kullanıcı dostu API'si ve hızlı kurulumu, hızlı geliştirme ve gerçek dünya üretimi için idealdir — özellikle bayt dizileri, dosya akışları veya web tabanlı PDF oluşturma ile çalışırken.
Öte yandan, iText 7, daha geleneksel, düzen odaklı bir yaklaşıma sahip güçlü ve saygın bir kütüphanedir. Belge yapısı üzerinde sağlam bir kontrol sunar ve ince ayrıntılı manipülasyona ihtiyaçı olan geliştiriciler için harikadır, ancak daha dik bir öğrenme eğrisi ile gelir ve modern HTML işleme yeteneklerinden yoksundur.
İşte özet:
Modern web içeriğinden, stil verilmiş HTML'den veya hızlı prototiplemeden piksel mükemmelliği çıkış mı istiyorsunuz? IronPDF ile gidin. Detaylı kontrol ile düşük seviyeli PDF oluşturma araçlarına mı ihtiyaçınız var? iText 7 belki doğru seçim olabilir.
IronPDF ile başlamak için hazır mısınız? Ücretsiz denemeyi indirin ve sadece birkaç satırlık C# koduyla profesyonel, bayt dizisi tabanlı PDF'lerin ne kadar kolay oluşturulabileceğini görün.
i:(iText 7, ilgili sahibinin tescilli markasıdır. Bu site, iText 7 ile ilişkilendirilmemiş, onaylanmamış veya sponsor olunmamıştır. Tüm ürün adları, logoları ve markalar, ilgili 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
C#'ta bir bayt dizisini PDF'ye nasıl ceviririm?
C#'ta bir bayt dizisini PDF'ye cevirirken IronPDF kullanabilirsiniz. `PdfDocument.FromBytes` metodunu kullanarak bayt dizisini bir IronPDF dokümanina yükleyin, bu metot veriyi ayrıştırır ve bir PDF dokümani uretir.
HTML'den PDF'e dönüşüm için IronPDF kullanmanın faydaları nelerdir?
IronPDF, bastan sona bir Chromium motoru kullanarak modern CSS ve JavaScript'i desteği sayesinde HTML'yi PDF'ye cevirme işlemlerinde başarı ile özel olarak parlamaktadir. Dinamik web içeriklerini piksel-dokkes PDF dokümanlarina cevrim için idealdir.
IronPDF kullanmanin iText 7'ye karsi olan ana avantajlari nelerdir?
IronPDF, projelerde HTML'yi PDF'ye cevirmek için daha basit bir API ve daha hizli bir kurulum sunarak, CSS ve JavaScript için tam desteği ile özel olarak hizli geliştirme ve web icerigi entegrasyonu gerektiren uygulamalar için uygundur.
iText 7, PDF uyumlulugunu nasıl ele aliyor?
iText 7, PDF/A, PDF/UA ve PDF/X gibi standartlari destekleyerek uygunluk agir sanayiler için tasarlanmistir. Bu, PDF oluşturmada saglam bir kontrol saglayarak, uyumun kritik oldugu uygulamalar için uygun hale getirir.
.NET projesine IronPDF'yi kurma süreçi nedir?
IronPDF'yi kurmak için Visual Studio'daki NuGet Paket Yönetici'yi kullanabilirsiniz. `Install-Package IronPdf` komutunu Paket Yönetici Konsoluna çalıştırarak projenize ekleyin.
IronPDF, ASP.NET gorunumlerinden PDF oluşturabilir mi?
Evet, IronPDF ASP.NET gorunumlerini doğrudan PDF belgelerine dosyalar. Bu özellik, karmaşık layout ve stili bulunan web sayfalarini PDF'ye dönüştürmek için geliştiricilere imkan tanir.
IronPDF kullanımindan en çok hangi uygulama türleri faydalanir?
Raporlar ve faturalar gibi dinamik web içeriklerini PDF'lere dönüştürmesi gereken uygulamalar, IronPDF kullanmaktan en çok faydalanir. Hızlı kurulum ve web teknolojisi desteği ile, sik ara güncellemeler ve modern tasarim gerektiren projeler için idealdir.
iText 7'nin modüler mimarisi, kullanımini nasıl etkiliyor?
iText 7'nin modüler mimarisi, HTML dönüşümu veya dijital imzalama gibi ihtiyaç duyulan özel PDF fonksiyonlarinin eklenmesine olanak tanir. Bu da esneklik saglar, ancak her moduller için ekstra öğreni ve kurulum gerektirebilir.
IronPDF ve iText 7 arasindaki lisanslama farklari nelerdir?
IronPDF, AGPL kisitlamalari olmadan ticari uygulamalar için uygun olan sureksiz lisanslama sunar. Buna karsilik, iText 7, açık kaynak projeleri için AGPL lisansi altinda mevcuttur; ticari kullanım için ücretli bir lisans gereklidir.



