Erstellen Sie PDF aus Byte-Array C# iTextSharp (vs IronPDF)
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
In modernen .NET-Anwendungen ist das Erstellen und Verwalten von PDF-Dateien eine häufige Anforderung - sei es für die Erstellung von Berichten, Rechnungen oder digitalen Aufzeichnungen. Entwickler wenden sich häufig an Drittanbieter-PDF-Bibliotheken für diese Aufgabe, und zwei der beliebtesten Optionen im .NET-Ökosystem sind IronPDF und iText 7 (der Nachfolger von iTextSharp).
Jede Bibliothek bietet ein leistungsstarkes Toolset für unterschiedliche Anwendungsfälle. Aber welche ist am besten geeignet, um ein PDF aus einem Byte-Array in C# zu erzeugen? Dieser Artikel stellt alles in den Vergleich, bietet Codebeispiele und Einblicke, um .NET-Entwicklern zu helfen, die richtige Wahl zu treffen.
Egal, ob Sie Unternehmensanwendungen oder kleine interne Tools entwickeln, die Wahl der richtigen PDF-Bibliothek kann Ihnen Entwicklungszeit sparen und ein robustes Ergebnis gewährleisten. Lassen Sie uns erkunden, was jede Bibliothek bietet.
Einführung in PDF-Bibliotheken
Wozu werden PDF-Bibliotheken verwendet?
PDF-Bibliotheken in C# ermöglichen es Entwicklern, PDF-Dateien programmgesteuert zu erstellen, zu manipulieren und zu lesen. Sie dienen einer Vielzahl von Anwendungsfällen, wie z.B.:
- Exportieren von Berichten und Rechnungen
- Erstellen dynamischer Inhalte aus Web-Formularen
- Konvertieren von HTML-Seiten oder Vorlagen in PDFs
- Hinzufügen visueller Elemente zu Ihren PDF-Dateien wie Seitenzahlen, Diagrammen, Bildern usw.
- Zusammenführen oder Aufteilen von Dokumenten
- Digitale Signatur von PDFs
Sie spielen auch eine entscheidende Rolle in der Datenportabilität und der Einhaltung von Normen wie PDF/A für Archivierung oder Zugänglichkeitsanforderungen.
iTextSharp und IronPDF: Die Top-Konkurrenten
Unter den verfügbaren .NET-PDF-Bibliotheken haben sich iTextSharp und IronPDF als führende Lösungen herauskristallisiert - jede mit einzigartigen Stärken:
- iTextSharp ist eine ausgereifte, Open-Source-Bibliothek, die auf Java's iText basiert und robusten PDF-Kontrollmöglichkeiten mit einer steilen Lernkurve und Lizenzvorgaben bietet.
- IronPDF, eine moderne kommerzielle Bibliothek, konzentriert sich auf Einfachheit, Geschwindigkeit und Web-Integration und ermöglicht Ihnen, HTML und ASP.NET-Ansichten direkt in PDF-Dateien zu konvertieren.
Warum die Wahl der richtigen Bibliothek wichtig ist
Die Wahl zwischen den beiden ist nicht nur eine Frage der Präferenz - sie wirkt sich auf Produktivität, Wartung, Leistung und sogar rechtliche Lizenzkonformität aus. Projekte, die schnelle Umsetzungen, häufige Formatänderungen oder PDF-Renderings aus HTML-Vorlagen erfordern, profitieren von einer schnellen Entwicklung, während Unternehmensanwendungen möglicherweise Standardskonformität und langfristige Wartbarkeit priorisieren.
Funktionsvergleich
iText 7 für .NET (Nachfolger von iTextSharp)
iText 7 ist der offizielle Nachfolger von iTextSharp und bietet eine vollständig neu gestaltete Architektur. Es ist eine leistungsstarke und erweiterbare Bibliothek, die sich für die Erstellung, Bearbeitung und Validierung von PDFs in Compliance-intensiven Branchen wie Jura, Finanzen und Regierung eignet. Die iText 7 Suite umfasst Unterstützung für PDF/A, PDF/UA, digitale Signaturen, Schwärzung und Formularerstellung.
Obwohl es immer noch Open-Source unter der AGPL-Lizenz ist, ist kommerzielle Lizenzierung für proprietäre Projekte verfügbar.
iText 7 Hauptmerkmale
- Moderne API, die iTextSharps ältere Struktur ersetzt
- Modulare Unterstützung: HTML zu PDF, PDF/A, Formulare, Schwärzung, digitale Signaturen
- Hohe Leistung für Unternehmensanwendungen
- Ideal für PDF/A, Zugänglichkeit, Compliance
Installation (NuGet)
Um iText 7's Kernpaket zur PDF-Erzeugung herunterzuladen:
Install-Package itext7

Sie können iText 7 auch über den Paketmanager für die Lösungsebene installieren. Gehen Sie dazu zuerst zum Tools-Dropdown-Menü und dann zu "NuGet-Paketmanager > NuGet-Pakete für die Lösung verwalten".

Dann suchen Sie einfach nach iText 7 und klicken auf "Installieren".

Code-Beispiel: PDF-Dokumente aus Byte-Array mit iText 7 erstellen
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
Ausgabe-PDF-Datei

Erklärung
PdfWriterschreibt den Inhalt in einMemoryStream.PdfDocumentverwaltet die interne Struktur des PDFs.Documentwird verwendet, um Inhalte höherer Ebene (Text, Bilder, Tabellen) hinzuzufügen. Nach dem Aufruf vondoc.Close()ist der PDF-Inhalt vollständig geschrieben und kann als Byte-Array zurückgegeben werden.
Dieses Beispiel zeigt die modularere und lesbarere API von iText 7 im Vergleich zu iTextSharp. Es fehlt jedoch immer noch die native Unterstützung für das Rendern von HTML/CSS, es sei denn, Sie fügen pdfhtml hinzu, das separat lizenziert wird.
Vor- und Nachteile von iText 7
Vorteile:
-
Umfassende PDF-Kontrolle\ iText 7 bietet die vollständige Kontrolle über PDF-Elemente wie Tabellen, Formulare und digitale Signaturen. Dies macht es ideal für Compliance-intensive Anwendungen, die spezielle PDF-Standards wie PDF/A oder PDF/UA erfordern.
-
Modular und skalierbar\ iText 7 ist modular aufgebaut, sodass Sie nur die spezifischen Module installieren können, die Sie benötigen (z. B. pdfhtml zur HTML-zu-PDF-Konvertierung). Dies ermöglicht eine leichtere Implementierung, wenn Sie nicht alle Funktionen nutzen.
-
Unterstützt komplexe PDF-Standards\ iText 7 unterstützt ISO-Standards wie PDF/A (Archivierung), PDF/UA (Zugänglichkeit) und PDF/X (Druck), was es für professionelle und juristische Umgebungen geeignet macht, in denen Compliance entscheidend ist.
-
Reiche Dokumentation & Unterstützung\ iText 7 bietet umfangreiche Dokumentation und eine große Community. Das Unternehmen bietet auch professionellen Support und stellt sicher, dass Entwickler bei Bedarf Unterstützung erhalten.
- Freie Version verfügbar (AGPL)\ Entwickler können iText 7 kostenlos unter der AGPL-Lizenz nutzen, was ideal für Open-Source-Projekte oder persönliche Verwendung ist.
Nachteile:
-
AGPL-Lizenz für kommerzielle Nutzung\ Während iText 7 eine kostenlose Version bietet, müssen kommerzielle Nutzer die AGPL-Lizenz einhalten, die die Offenlegung des Quellcodes jeder Software, die iText 7 verwendet, erfordert oder für eine kommerzielle Lizenz bezahlt werden muss.
-
Steile Lernkurve\ Die API von iText 7 ist komplexer und funktionsreicher, was zu einer steileren Lernkurve im Vergleich zu einfacheren Bibliotheken wie IronPDF führen kann. Entwickler müssen sich mit der Low-Level-Dokumentenstruktur und der modularen Architektur vertraut machen.
-
Schwergewicht für einfache Aufgaben\ iText 7 kann sich für grundlegende PDF-Aufgaben wie einfache Dokumenterstellung oder grundlegende HTML-zu-PDF-Konvertierung schwerfällig anfühlen, insbesondere im Vergleich zu Bibliotheken wie IronPDF, die den Prozess vereinfachen.
- Benötigt externe Module für HTML zu PDF\ Die Konvertierung von HTML zu PDF in iText 7 steht nur über das zusätzliche pdfhtml-Modul zur Verfügung, das eine separate Installation erfordert und moderne Webinhalte möglicherweise nicht so nahtlos handhabt wie IronPDF.
IronPDF for .NET: Eine leistungsfähige PDF-Bibliothek
IronPDF ist eine höherstufige .NET-Bibliothek, die entwickelt wurde, um die PDF-Dokumentenerstellung mit einem Fokus auf Produktivität der Entwickler zu vereinfachen. Es ist besonders effektiv für das Rendern von HTML-Inhalten und -Stilen und macht es ideal für moderne Web-to-PDF-Workflows.
Wichtige Merkmale:
- Erstellen von PDF-Dateien aus Byte-Arrays und Arbeiten mit PDF-Dokumenten, ohne Adobe Reader installieren zu müssen
- Direktes HTML-zu-PDF-Rendering mit der kompletten Chromium-Engine zur Erstellung von PDF-Dokumenten aus HTML-Inhalten
- Funktioniert mit MVC-Ansichten, Razor-Seiten und lokalen/fernen URLs
- Unterstützt Bilddateien, JavaScript, CSS und responsive Layouts out-of-the-box
- Einfach zu verwendende Syntax und minimal erforderliche Einrichtung
- Unbegrenzte Lizenzierung und keine AGPL-Beschränkungen
Installation von IronPDF
IronPDF kann auch über NuGet installiert werden, indem der folgende Befehl in der NuGet Paketmanager-Konsole ausgeführt wird:
Install-Package IronPdf

Alternativ können Sie es über den NuGet-Paketmanager für Lösungen installieren. Navigieren Sie dazu zu "Tools > NuGet Paketmanager > NuGet-Pakete für Lösung verwalten".

Dann suchen Sie nach IronPDF und klicken Sie auf "Installieren".

Nach der Installation können Sie in wenigen Sekunden komplette HTML-Seiten in PDF rendern - keine zusätzlichen Module erforderlich. Es unterstützt modernes CSS, JavaScript und sogar interaktive Webinhalte ohne zusätzliche Konfiguration.
Code-Beispiel: PDF-Dokumente aus einem Byte-Array mit IronPDF erstellen
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
Ausgabe-PDF-Datei

Erklärung
- Die Anweisung
using IronPdfimportiert die IronPDF -Bibliothek, um Zugriff auf alle PDF-bezogenen Klassen zu erhalten. var renderer = new ChromePdfRenderer()erstellt einen neuen HTML-zu-PDF-Renderer, der auf einer Headless-Chromium-Engine basiert.renderer.RenderHtmlAsPdf(...)wandelt die angegebene HTML-Zeichenkette in ein PDF-Dokument um. Sie können auch Dateipfade oder URLs übergeben.pdfDoc.BinaryDatagibt das endgültige PDF als Byte-Array zurück, das zum Speichern, Streamen oder zur Speicherung in einer Datenbank bereit ist.
Vor- und Nachteile von IronPDF
Vorteile:
-
Mühelose HTML-zu-PDF-Konvertierung\ Rendern Sie HTML-, CSS- und JavaScript-Inhalte direkt in PDFs mit vollständigem Styling, einschließlich Bootstrap und benutzerdefinierter Schriftarten - kein Bedarf an komplexem Layout-Code oder zusätzlichen Modulen.
-
Schneller Einstieg & intuitive API\ Erstellen Sie vollständig gestylte PDF-Dateien mit nur wenigen Codezeilen, mit sauberer Syntax und vollständiger .NET-Core- und .NET-Framework-Kompatibilität.
-
Umfassende Unterstützung für Web-Technologien\ IronPDF unterstützt JavaScript, modernes CSS, SVGs und Media Queries - etwas, womit die meisten Bibliotheken zu kämpfen haben, es sei denn, sie verwenden headless Browser wie Chromium (was IronPDF intern tut).
-
Integrierter Bild- & Asset-Support\ Bilder, lokale Dateien oder sogar Assets von entfernten URLs einfach einbinden, ohne zusätzliche Konfiguration.
-
Unbegrenzte Lizenzierung & keine AGPL\ Im Gegensatz zu iText 7 bietet IronPDF flexible kommerzielle Lizenzierung ohne die Einschränkungen von Open-Source-AGPL-Verpflichtungen.
- Ausgezeichnet für MVC- & Razor-Ansichten\ Konvertiert nahtlos .cshtml Razor-Ansichten in ASP.NET-Anwendungen in druckbare PDFs.
Nachteile:
-
Kommerzielle Nutzung erfordert Lizenz\ Auch wenn es eine kostenlose Testversion gibt, ist IronPDF nicht Open Source. Projekte mit engen Budgets müssen möglicherweise die Lizenzkosten bewerten.
- Größere anfängliche Paketgröße\ Da es eine headless Chromium-Engine bündelt, ist das NuGet-Paket schwerer als einige Alternativen.
Praktische Code-Beispiele im Vergleich
Die folgenden Codebeispiele in diesem Abschnitt demonstrieren diese Bibliotheken in Aktion, während wir IronPDF und iText 7 anhand derselben Aufgaben vergleichen. Beide Bibliotheken werden durch dieselben Szenarien getestet: Erstellen eines PDFs von einer URL, Rendern eines Bildes als PDF und Konvertieren von gestyltem HTML zu PDF, während Byte-Arrays zur Handhabung unserer PDF-Inhalte verwendet werden. Dies wird es Entwicklern ermöglichen zu bewerten, wie jede Bibliothek diese häufigen Anwendungsfälle angeht.
1. Erzeugen einer einfachen PDF-Datei aus einer URL mithilfe eines Byte-Arrays
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
Ausgabe-PDF

IronPDF verwendet eine headless Chromium-Engine zur pixelgenauen Renderung von Webseiten mit vollständiger JavaScript- und CSS-Unterstützung.
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
Ausgabe

iText 7 ruft rohen HTML-Code mit dem HttpClient ab und rendert ihn mit HtmlConverter, unterstützt jedoch kein JavaScript (gemäß der offiziellen Dokumentation von iText, die die Verwendung von Selenium oder ähnlichen Browser-Automatisierungstools zur JavaScript-Vorverarbeitung empfiehlt) und hat begrenzte CSS-Stile. Während iText7 im Jahr 2021 (Version 7.1.15) Unterstützung für Flexbox eingeführt hat, bleiben viele CSS3-Eigenschaften besonders für komplexe moderne Layouts weiterhin ununterstützt.
2. Erstellen einer neuen PDF-Datei aus einem Bild mithilfe eines Byte-Arrays
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
Ausgabe

Einfache Bild-zu-PDF-Erstellung mit dem ImageToPdfConverter-Tool von IronPDF. Damit können Sie leicht PDFs aus Bildern wie PNG-Dateien oder JPGs erstellen.
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
Ausgabe

Manuelle Erstellung des Dokumentlayouts und explizite Bild-Einfügung mit ImageDataFactory.
3. gestaltete HTML-Inhalte mithilfe eines Byte-Arrays in PDF konvertieren
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
Ausgabe

IronPDF unterstützt dank seiner Chromium-Engine voll CSS in Tags oder externen Stylesheets.
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
Ausgabe

Erfordert die Installation des kostenpflichtigen Add-ons pdfHTML, um HTML-Konvertierungsaufgaben zu handhaben.
Zusammenfassung des Vergleichs
| Funktion | IronPDF | iText 7 (mit pdfHTML) |
|---|---|---|
| URL zu PDF rendern | Volle Chromium-Renderung | HTML abrufen, ohne native JS-Unterstützung |
| Bild hinzufügen | Einbettung über HTML oder das spezielle Bild-Stanz-Tool | Manuelle Bildfabrik |
| Gestyltes HTML rendern | Vollständige CSS-Unterstützung | CSS-Unterstützung nur durch pdfHTML |
| Liefert Byte-Array | Ja | Ja |
| Einrichtungs-Komplexität | Einfach | Mittel (manuelles Layout) |
| Ausgabequalität | Pixelgenau | Gut, aber statisch |
Abschluss: Welche .NET-Bibliothek sollten Sie wählen?
Die Wahl zwischen IronPDF und iText 7 hängt von den Anforderungen Ihres Projekts ab — aber wenn es um Entwicklererfahrung, Benutzerfreundlichkeit und moderne Rendering-Genauigkeit geht, sticht IronPDF eindeutig hervor.
Wenn Sie mit dynamischen HTML-Inhalten, Web-Renderings arbeiten oder PDF-Dateien aus URLs erstellen müssen mit voller Unterstützung for JavaScript und CSS, liefert IronPDFs auf Chromium basierende Engine unvergleichliche Treue. Seine intuitive API und schnelle Einrichtung machen es ideal für die schnelle Entwicklung und den Einsatz im echten Produktionseinsatz — insbesondere bei der Arbeit mit Byte-Arrays, Dateiströmen oder web-basierter PDF-Erstellung.
Andererseits ist iText 7 eine leistungsstarke und angesehene Bibliothek mit einem traditionelleren, layoutgesteuerten Ansatz. Es bietet solide Kontrolle über die Dokumentstruktur und ist großartig für Entwickler, die feinkörnige Manipulation benötigen, hat aber eine steilere Lernkurve und fehlt moderne HTML-Rendering-Funktionen.
Hier ist das Fazit:
- Möchten Sie pixelgenaue Ausgaben aus modernen Web-Inhalten, gestyltes HTML oder schnelles Prototyping? Wählen Sie IronPDF.
- Benötigen Sie Low-Level-PDF-Erstellungstools mit granularer Kontrolle? iText 7 könnte die richtige Wahl sein.
Bereit für den Einstieg in IronPDF? Laden Sie die kostenlose Testversion herunter und sehen Sie, wie einfach es ist, professionelle, auf Byte-Arrays basierende PDFs in C# mit nur wenigen Codezeilen zu erstellen.
Häufig gestellte Fragen
Wie kann ich ein Byte-Array in eine PDF in C# umwandeln?
Sie können IronPDF verwenden, um ein Byte-Array in eine PDF in C# zu konvertieren. Laden Sie einfach das Byte-Array in ein IronPDF-Dokument mit der Methode `PdfDocument.FromBytes`, die die Daten analysiert und ein PDF-Dokument generiert.
Was sind die Vorteile der Verwendung von IronPDF für die Umwandlung von HTML in PDF?
IronPDF brilliert bei der Umwandlung von HTML in PDF aufgrund der Verwendung einer headless Chromium-Engine, die moderne CSS und JavaScript unterstützt. Dies macht es ideal zum Rendern von dynamischen Webinhalten in pixelperfekte PDF-Dokumente.
Was sind die Hauptvorteile der Verwendung von IronPDF gegenüber iText 7 für die PDF-Erstellung?
IronPDF bietet eine einfachere API und schnellere Einrichtung für Projekte, die HTML in PDF umwandeln müssen, mit voller Unterstützung für CSS und JavaScript. Es ist besonders geeignet für Anwendungen, die schnelle Entwicklung und Webinhaltsintegration erfordern.
Wie handhabt iText 7 die PDF-Konformität?
iText 7 ist für konformitätsintensive Branchen konzipiert und unterstützt Standards wie PDF/A, PDF/UA und PDF/X. Es bietet robuste Kontrolle über die PDF-Erstellung, was es geeignet macht für Anwendungen, bei denen Konformität entscheidend ist.
Was ist der Prozess zur Installation von IronPDF in einem .NET-Projekt?
Um IronPDF zu installieren, können Sie den NuGet-Paketmanager in Visual Studio verwenden. Führen Sie den Befehl `Install-Package IronPDF` in der Paketmanagerkonsole aus, um es Ihrem Projekt hinzuzufügen.
Kann IronPDF PDFs aus ASP.NET-Ansichten erstellen?
Ja, IronPDF kann ASP.NET-Ansichten direkt in PDF-Dokumente rendern. Diese Funktion ermöglicht es Entwicklern, Webseiten mit komplexen Layouts und Stilen einfach in PDFs umzuwandeln.
Welche Arten von Anwendungen profitieren am meisten von der Verwendung von IronPDF?
Anwendungen, die dynamische Webinhalte wie Berichte und Rechnungen in PDFs umwandeln müssen, profitieren am meisten von der Verwendung von IronPDF. Die schnelle Einrichtung und Unterstützung für Webtechnologien machen es ideal für Projekte, die häufige Updates und modernes Design benötigen.
Wie beeinflusst die modulare Architektur von iText 7 seine Verwendung?
Die modulare Architektur von iText 7 ermöglicht es, spezifische PDF-Funktionalitäten wie HTML-Umwandlung oder digitale Signatur nach Bedarf hinzuzufügen. Dies bietet Flexibilität, kann jedoch zusätzliche Lern- und Installationsaufwendungen für jedes Modul erfordern.
Wie unterscheiden sich die Lizenzmodelle von IronPDF und iText 7?
IronPDF bietet unbefristete Lizenzen, die für kommerzielle Anwendungen geeignet sind, ohne AGPL-Beschränkungen. Im Gegensatz dazu ist iText 7 unter der AGPL-Lizenz für Open-Source-Projekte verfügbar, wobei die kommerzielle Nutzung eine bezahlte Lizenz erfordert.



