Zum Fußzeileninhalt springen
PDF-WERKZEUGE

Wie man PDF-Dateien zu einem Dokument kombiniert

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

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 greifen oft auf Drittanbieter-PDF-Bibliotheken für diese Aufgabe zurück, und zwei der beliebtesten Optionen im .NET-Ökosystem sind IronPDF und iText (der Nachfolger von iText).

Jede Bibliothek bietet ein leistungsstarkes Toolset für unterschiedliche Anwendungsfälle. Aber welche ist am besten geeignet, um ein PDF aus einem [Byte-Array](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/dd831853(v=vs.120) in C# zu generieren? 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.

iText und IronPDF: Die Hauptkonkurrenten

Unter den verfügbaren .NET PDF-Bibliotheken haben sich iText und IronPDF als führende Lösungen herausgebildet – jede mit einzigartigen Stärken:

  • iText ist eine ausgereifte, Open-Source-Bibliothek basierend auf Java's iText, die robuste PDF-Kontrolle mit einer steilen Lernkurve und Lizenzbedingungen 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 for .NET (Nachfolger von iText)

iText ist der offizielle Nachfolger von iText und bietet eine komplett überarbeitete 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 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 Hauptmerkmale

  • Moderne API, ersetzt die ältere Struktur von iText
  • 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

Hinweis:Sie müssen iText für Kern-PDF-Operationen verwenden und können optionale Add-Ons wie html2pdf separat einschließen.

Installation (NuGet)

Um das Kernpaket von iText für die PDF-Generierung herunterzuladen:

Install-Package itext7

Installation von iText über die NuGet-Paket-Manager-Konsole

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

Dropdown-Menü von Visual Studio

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

iText NuGet Paketseite

Codebeispiel: Erstellen von PDF-Dokumenten aus Byte-Array mit iText

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

Ausgabe-PDF-Datei

iText PDF-Ausgabe

Erklärung

  • PdfWriter schreibt den Inhalt in ein MemoryStream.
  • PdfDocument verwaltet die interne Struktur des PDF.
  • Document wird verwendet, um hochgradige Inhalte hinzuzufügen (Text, Bilder, Tabellen).
  • Nach dem Aufruf von doc.Close() ist der PDF-Inhalt vollständig geschrieben und bereit, als Byte-Array zurückgegeben zu werden.

Dieses Beispiel zeigt die modularere und lesbarere API von iText im Vergleich zu iText. Es fehlt jedoch immer noch an nativer 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

Vorteile:

  • Umfassende PDF-Kontrolle\ iText bietet 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 ist modular aufgebaut, was bedeutet, dass Sie nur die spezifischen Module installieren können, die Sie benötigen (z. B. pdfhtml für HTML-zu-PDF-Konvertierung). Dies ermöglicht eine leichtere Implementierung, wenn Sie nicht alle Funktionen nutzen.

  • Unterstützt komplexe PDF-Standards\ iText unterstützt ISO-Standards wie PDF/A (Archivierung), PDF/UA (Barrierefreiheit) und PDF/X (Drucken), was es für professionelle und rechtliche Umgebungen geeignet macht, in denen Konformität entscheidend ist.

  • Reiche Dokumentation & Unterstützung\ iText hat umfassende 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 kostenlos unter der AGPL-Lizenz verwenden, was ideal für Open-Source-Projekte oder den persönlichen Gebrauch ist.

Nachteile:

  • AGPL-Lizenz für kommerzielle Nutzung\ Obwohl iText eine kostenlose Version bietet, müssen kommerzielle Anwender die AGPL-Lizenz einhalten, die die Freigabe des Quellcodes jeder Software, die iText verwendet, oder den Kauf einer kommerziellen Lizenz erfordert.

  • Steile Lernkurve\ Die API von iText 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 kann sich für grundlegende PDF-Aufgaben, wie die einfache Dokumenterstellung oder grundlegende HTML-zu-PDF-Konvertierung, sperrig anfühlen, besonders im Vergleich zu Bibliotheken wie IronPDF, die den Prozess vereinfachen.

  • Benötigt externe Module für HTML zu PDF\ Die HTML-zu-PDF-Konvertierung in iText ist nur über das zusätzliche pdfhtml-Modul verfügbar, das eine separate Installation erfordert und möglicherweise moderne Webinhalte nicht so nahtlos wie IronPDF behandelt.

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

Installation von IronPDF über die Paket-Manager-Konsole

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

Werkzeug-Dropdown-Menü in Visual Studio

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

IronPDF NuGet Paket-Manager Bildschirm

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

Ausgabe-PDF-Datei

IronPDF-Ausgabe

Erklärung

  • Die using IronPdf Anweisung importiert die IronPDF-Bibliothek für den Zugriff auf alle PDF-bezogenen Klassen.
  • var renderer = new ChromePdfRenderer() erstellt einen neuen HTML-zu-PDF-Renderer, der von einer Headless-Chromium-Engine betrieben wird.
  • renderer.RenderHtmlAsPdf(...) konvertiert den gegebenen HTML-String in ein PDF-Dokument. Sie können auch Dateipfade oder URLs übergeben.
  • pdfDoc.BinaryData gibt das endgültige PDF als Byte-Array zurück, bereit zum Speichern, Streamen oder zur Datenbank-Speicherung.

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 bietet IronPDF flexible kommerzielle Lizenzierung, ohne die Beschrä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 zeigen diese Bibliotheken in Aktion, während wir IronPDF und iText mit denselben 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
$vbLabelText   $csharpLabel

Ausgabe-PDF

URL zu PDF IronPDF-Ausgabe

IronPDF verwendet eine headless Chromium-Engine zur pixelgenauen Renderung von Webseiten mit vollständiger JavaScript- und CSS-Unterstützung.

iText

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

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

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

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

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

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

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

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

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

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

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

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

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

Ausgabe

iText URL zu PDF-Ausgabe

iText ruft rohes HTML mit dem HttpClient ab und rendert es mit HtmlConverter, unterstützt jedoch keine JavaScript-Ausführung (wie durch die offizielle Dokumentation von iText bestätigt, die empfiehlt, Selenium oder ähnliche Browserautomatisierung für die JavaScript-Vorverarbeitung zu verwenden) und hat eingeschränkte CSS-Styling. Während iText in Version 7.1.15 (2021) partielle Flexbox-Unterstützung hinzugefügt hat, bleiben viele CSS3-Eigenschaften ununterstützt, insbesondere für komplexe moderne Layouts.

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

Ausgabe

IronPDF Bild zu PDF-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

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

Ausgabe

iText PDF mit Bildausgabe

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

Ausgabe

IronPDF gestyltes HTML zu PDF-Ausgabe

IronPDF unterstützt dank seiner Chromium-Engine voll CSS in Tags oder externen Stylesheets.

iText + pdfHTML

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

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

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

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

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

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

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

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

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

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

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

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

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

Ausgabe

iText gestyltes HTML zu PDF-Ausgabe

Erfordert die Installation des kostenpflichtigen Add-ons pdfHTML, um HTML-Konvertierungsaufgaben zu handhaben.

Zusammenfassung des Vergleichs

Funktion IronPDF iText (with 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 hängt von den Bedürfnissen Ihres Projekts ab – wenn es jedoch um Entwicklererfahrung, Benutzerfreundlichkeit und moderne Rendergenauigkeit geht, ist IronPDF eindeutig überlegen.

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 eine leistungsstarke und angesehene Bibliothek mit einem eher traditionellen, layoutgetriebenen 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 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.

Hinweis:iText ist eine eingetragene Marke ihres jeweiligen Eigentümers. Diese Seite ist nicht verbunden mit, wird nicht unterstützt von oder gesponsert von iText. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an