Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

Erstellen Sie PDF aus Byte-Array C# iTextSharp (vs IronPDF)

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

Hinweis: Sie müssen itext7 für die wichtigsten PDF-Operationen verwenden und können optionale Add-ons wie html2pdf separat einbinden.

Installation (NuGet)

Um iText 7's Kernpaket zur PDF-Erzeugung herunterzuladen:

Install-Package itext7

Installieren von iText 7 über die NuGet-Paketmanager-Konsole

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

Visual Studio's Tools-Dropdown-Menü

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

iText 7 NuGet-Paketseite

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();
        }
    }
}
$vbLabelText   $csharpLabel

Ausgabe-PDF-Datei

iText 7 PDF-Ausgabe

Erklärung

  • PdfWriter schreibt den Inhalt in einen MemoryStream.
  • PdfDocument verwaltet die interne Struktur des PDFs.
  • Document wird verwendet, um hochrangigen Inhalt hinzuzufügen (Text, Bilder, Tabellen).
  • Nachdem doc.Close() aufgerufen wurde, 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 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

Installation von IronPDF über die Paketmanager-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".

Dropdown-Menü Werkzeuge in Visual Studio

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

IronPDF NuGet-Paketmanager-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;
    }
}
$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 durch eine headless Chromium-Engine unterstützt wird.
  • renderer.RenderHtmlAsPdf(...) konvertiert den angegebenen HTML-String in ein PDF-Dokument. Sie können auch Dateipfade oder URLs übergeben.
  • pdfDoc.BinaryData gibt das finale PDF als Byte-Array zurück, bereit für Speicherung, Streaming oder Datenbank-Archivierung.

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;
    }
}
$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 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();
    }
}
$vbLabelText   $csharpLabel

Ausgabe

iText 7 URL zu PDF 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;
    }
}
$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 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();
    }
}
$vbLabelText   $csharpLabel

Ausgabe

iText 7 PDF mit Bild-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;
    }
}
$vbLabelText   $csharpLabel

Ausgabe

IronPDF gestyltes HTML zu PDF-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();
    }
}
$vbLabelText   $csharpLabel

Ausgabe

iText 7 gestyltes HTML zu PDF-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 Moderat (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 für 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.

Hinweis:iText 7 ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite ist nicht verbunden mit, wird nicht unterstützt von oder gesponsert von iText 7. Alle Produktnamen, Logos und Marken sind das Eigentum ihrer jeweiligen Inhaber. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare 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