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

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.

View Full Comparison

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

Lütfen dikkate alinÇekirdek PDF işlemleri için itext7'yi kullanmanız ve opsiyonel olarak html2pdf gibi eklentileri ayrı ayrı eklemeniz gerekecek.

Kurulum (NuGet)

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

Install-Package itext7

NuGet Paket Yöneticisi Konsolu üzerinden iText 7'nin kurulması

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.

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

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

iText 7 NuGet paket sayfası

Ö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
$vbLabelText   $csharpLabel

Çıktı PDF dosyası

iText 7 PDF Çıkışı

Açıklama

  • PdfWriter içerikleri bir MemoryStream'e yazar.
  • PdfDocument PDF'nin iç yapısını yönetir.
  • Document yü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

Paket Yöneticisi Konsolu üzerinden IronPDF'in kurulması

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.

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

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

IronPDF NuGet paket yöneticisi ekranı

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
$vbLabelText   $csharpLabel

Çıktı 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 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
$vbLabelText   $csharpLabel

Çıktı PDF

URL'den PDF'ye IronPDF çıktısı

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
$vbLabelText   $csharpLabel

Çıktı

iText 7 URL'den PDF'ye çı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
$vbLabelText   $csharpLabel

Çıktı

IronPDF resimden PDF'ye çı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
$vbLabelText   $csharpLabel

Çıktı

iText 7 resimli PDF çıktısı

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
$vbLabelText   $csharpLabel

Çıktı

IronPDF stil verilmiş HTML'den PDF'ye çı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
$vbLabelText   $csharpLabel

Çıktı

iText 7 stil verilmiş HTML'den PDF'ye çı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.

Curtis Chau
Teknik Yazar

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

Daha Fazlasını Oku

Iron Destek Ekibi

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