Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

iTextsharp HTML zu PDF mit CSS-Stilen C# Beispiel vs IronPDF

Converting HTML to PDF is a crucial task in many modern software development workflows, whether it's for generating reports, invoices, or creating documentation. As a C# developer, you have several libraries at your disposal to streamline this process.

In this article, we'll compare two of the most popular libraries within the .NET ecosystem: IronPDF and iTextSharp. Both libraries offer robust functionality, but they differ in key areas such as ease of use, PDF creation tools, CSS styling support, and licensing. Whether you're a beginner or a seasoned developer, this guide will help you understand their core features and decide which one is the best fit for you based off your needs and project requirements.

Want to follow along? Download the IronPDF free trial to explore IronPDF's powerful features for yourself.

Comparing Top Libraries: iTextSharp and IronPDF

Both iTextSharp and IronPDF provide developers with the tools they need for HTML to PDF conversion in C#. However, each has its own strengths and weaknesses.

  • iTextSharp is an open-source library that has been around for a long time. It offers flexibility and extensive customization options, but it can be somewhat complex to set up and use, especially when dealing with advanced HTML and CSS rendering. However, it should be noted that iTextSharp is a legacy product and only receives security-related updates now.

  • IronPDF, on the other hand, is a commercial product developed by Iron Software. It is known for its user-friendly interface, robust CSS support, and ease of use. It integrates seamlessly with C# applications, making it an excellent choice for developers who need fast and efficient PDF generation without sacrificing quality.

Before we dive into how to convert HTML to PDF format with these two libraries, let's first look at a basic example comparison which shows the difference in how these two libraries handle converting CSS and JavaScript-heavy web page/HTML content into a PDF document.

iTextSharp vs IronPDF URL to PDF

As you can see from the resulting PDF documents, this demonstrates how iTextSharp can only process the raw HTML content from the provided URL, whereas IronPDF is capable of maintaining the original CSS layout and styling, ensuring the generated PDF document closely resembles the original web page.

Step-by-Step Installation Guide

Setting Up iTextSharp

  1. Install via NuGet Console: To begin using iTextSharp, you can install it directly from NuGet. Open your Visual Studio project, go to the NuGet Package Manager, and run the following command:
Install-Package iTextSharp

Installing iTextSharp via the NuGet Console

  1. Install via NuGet Package Manager: Alternatively, you can install it via the NuGet package manager for the Solution screen. To do this, navigate to "Tools > NuGet Package Manager > Manage NuGet Packages for Solution".

Tools dropdown menu

Then, search for the iTextSharp library and click "Install".

iTextSharp NuGet screen

  1. Add References: Once installed, add the necessary references in your project, particularly those related to HTML to PDF conversion.
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
Imports iTextSharp.text.pdf
Imports iTextSharp.text.html.simpleparser
$vbLabelText   $csharpLabel

Setting Up IronPDF

  1. Install via NuGet Console: To begin using IronPDF, you can install it directly from NuGet. Open your Visual Studio project, go to the NuGet Package Manager, and run the following command:
Install-Package IronPdf
  1. Install via NuGet Package Manager: Alternatively, you can install it via the NuGet package manager for the Solution screen just as we did in the steps above for iTextSharp. However, this time, search for IronPDF, before clicking "Install".

    IronPDF's NuGet screen

  2. Add References: Once installed, import IronPDF into your project:
using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

It is important to remember that IronPDF requires a license key for commercial use/use outside of development.

Implementing HTML to PDF Conversion

Using iTextSharp

Once iTextSharp is set up, ensure you have the itextsharp.xmlworker package installed within your project before you can start to create PDFs from HTML content. However, you'll face challenges with more complex HTML, especially when CSS styles are involved. iTextSharp tends to require additional effort to achieve perfect styling when compared to IronPDF. It's important to remember that iTextSharp handles basic HTML/CSS2 only (no flexbox, no grid, limited CSS).

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

// Define HTML content with CSS styling
string html = @"
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>";

// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
    Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    using (StringReader sr = new StringReader(html))
    {
        // Use XMLWorkerHelper to parse and add HTML content to the PDF document
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    }
    pdfDoc.Close();
    writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;

// Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

// Define HTML content with CSS styling
string html = @"
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>";

// Create PDF from HTML content
using (FileStream stream = new FileStream("report.pdf", FileMode.Create))
{
    Document pdfDoc = new Document(PageSize.A4, 25, 25, 30, 30);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    using (StringReader sr = new StringReader(html))
    {
        // Use XMLWorkerHelper to parse and add HTML content to the PDF document
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    }
    pdfDoc.Close();
    writer.Close();
}
Console.WriteLine("PDF generation completed successfully.");
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml

' Register provider for specific code pages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

' Define HTML content with CSS styling
Dim html As String = "
<html>
<head>
  <style>
    body { font-family: Arial; color: #333; }
    h1 { background: #3498db; color: #fff; padding: 10px; }
    table { width: 100%; border-collapse: collapse; margin-top: 15px; }
    th, td { border: 1px solid #ccc; padding: 6px; }
    th { background: #2980b9; color: #fff; }
    .footer { margin-top: 20px; font-size: 12px; color: #777; text-align: center; }
  </style>
</head>
<body>
  <h1>April Report</h1>
  <p>Here’s a quick overview of this month’s performance metrics.</p>
  <table>
    <tr><th>Metric</th><th>Value</th></tr>
    <tr><td>Features</td><td>12</td></tr>
    <tr><td>Bugs Fixed</td><td>89</td></tr>
  </table>
  <p class='footer'>Generated by iTextSharp</p>
</body>
</html>"

' Create PDF from HTML content
Using stream As New FileStream("report.pdf", FileMode.Create)
	Dim pdfDoc As New Document(PageSize.A4, 25, 25, 30, 30)
	Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, stream)
	pdfDoc.Open()
	Using sr As New StringReader(html)
		' Use XMLWorkerHelper to parse and add HTML content to the PDF document
		XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr)
	End Using
	pdfDoc.Close()
	writer.Close()
End Using
Console.WriteLine("PDF generation completed successfully.")
$vbLabelText   $csharpLabel

Output PDF File

iTextSharp HTML to PDF output

Using IronPDF

IronPDF simplifies the PDF generation process, able to easily convert HTML content into new PDF documents in just a few lines of code, as demonstrated in the code sample below. It's capable of working with advanced HTML documents with CSS files used for styling, HTML strings, and CSS/JavaScript-heavy web content.

Here's a simple example that includes inline CSS:

using IronPdf;

class Program
{
    static void Main()
    {
        // Define HTML content with inline CSS styling
        var content = @"
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF | © 2025 DevCorp
            </div>
        </body>
        </html>";

        // Use ChromePdfRenderer to render the HTML content as a PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs("AdvancedStyledReport.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Define HTML content with inline CSS styling
        var content = @"
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF | © 2025 DevCorp
            </div>
        </body>
        </html>";

        // Use ChromePdfRenderer to render the HTML content as a PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs("AdvancedStyledReport.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Define HTML content with inline CSS styling
		Dim content = "
        <html>
        <head>
            <style>
                body {
                    font-family: 'Segoe UI', sans-serif;
                    margin: 40px;
                    background-color: #f8f9fa;
                }
                h1 {
                    color: #2c3e50;
                    border-bottom: 2px solid #2980b9;
                    padding-bottom: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                table, th, td {
                    border: 1px solid #ccc;
                }
                th {
                    background-color: #2980b9;
                    color: white;
                    padding: 10px;
                }
                td {
                    padding: 10px;
                    background-color: #ecf0f1;
                }
                .footer {
                    margin-top: 40px;
                    text-align: center;
                    font-size: 0.9em;
                    color: #7f8c8d;
                }
                img {
                    width: 120px;
                    float: right;
                }
            </style>
        </head>
        <body>
            <img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg' alt='Company Logo' />
            <h1>Monthly Report - April 2025</h1>
            <p>This report outlines performance statistics and key updates for the development team.</p>

            <table>
                <tr>
                    <th>Metric</th>
                    <th>Value</th>
                    <th>Change</th>
                </tr>
                <tr>
                    <td>Feature Releases</td>
                    <td>12</td>
                    <td style='color: green;'>+20%</td>
                </tr>
                <tr>
                    <td>Bugs Resolved</td>
                    <td>89</td>
                    <td style='color: green;'>+45%</td>
                </tr>
                <tr>
                    <td>Downtime</td>
                    <td>2 hrs</td>
                    <td style='color: red;'>+15%</td>
                </tr>
            </table>

            <div class='footer'>
                Generated with IronPDF | © 2025 DevCorp
            </div>
        </body>
        </html>"

		' Use ChromePdfRenderer to render the HTML content as a PDF
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(content)
		pdf.SaveAs("AdvancedStyledReport.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Output PDF File

IronPDF HTML to PDF output

With IronPDF, you can expect a polished PDF file with accurate CSS styling, as seen with the above code example, making it a go-to for many developers working with complex HTML files, strings, and more. Beyond simple HTML to PDF document conversion tasks, IronPDF is capable of advanced PDF manipulation tasks and PDF security. This makes it an excellent all-in-one PDF library.

Key Differences and Competitor Landscape

When evaluating iTextSharp and IronPDF, it's important to consider not just their features, but also the competitive landscape. Other competitors like Apryse and Aspose.PDF offer similar HTML to PDF solutions, but with their own trade-offs in terms of pricing and functionality.

Feature IronPDF iTextSharp Apryse Aspose.PDF
Ease of Use High Medium High Medium
CSS Support Full Partial Full Full
Licensing Commercial Open Source Commercial Commercial
Support Excellent Community Premium Premium
Pricing From $799 Free/Commercial license Quote-based From $1,679 per year

IronPDF stands out due to its comprehensive support for modern HTML5 and CSS3, which is critical for most developers today. Its extended support for manipulating PDF documents, control over PDF document creation, ease with the conversion process, and more, make IronPDF a popular PDF library.

Conclusion and Recommendations

In conclusion, both IronPDF and iTextSharp offer strong capabilities for HTML to PDF conversion in C#, but they cater to different types of developers. If you’re looking for an open-source solution with strong community support, iTextSharp may be the right choice. However, for developers who need ease of use, robust CSS support, and a commercial solution, IronPDF offers a far more streamlined and feature-rich experience. Whether you're looking for a tool that can automate generating invoices, create branded PDF documents, or convert entire web pages to PDF files, IronPDF has you covered.

Try IronPDF’s user-friendly features today – download the free trial for a firsthand experience and see how easy HTML to PDF conversion can be.

Hinweis:iTextSharp is a registered trademark of its respective owner. This site is not affiliated with, endorsed by, or sponsored by iTextSharp. All product names, logos, and brands are property of their respective owners. Comparisons are for informational purposes only and reflect publicly available information at the time of writing.

Häufig gestellte Fragen

Wie kann ich HTML in PDF in C# konvertieren?

Sie können IronPDF verwenden, um HTML in PDF zu konvertieren, indem Sie die Methode RenderHtmlAsPdf für HTML-Strings oder RenderHtmlFileAsPdf für HTML-Dateien verwenden. Diese Bibliothek unterstützt modernes HTML5 und CSS3, was eine genaue Stilisierung und Darstellung gewährleistet.

Was sind die Hauptvorteile der Verwendung von IronPDF für die HTML-zu-PDF-Konvertierung?

IronPDF bietet robuste Unterstützung für modernes HTML5 und CSS3, was es ideal für die Bearbeitung komplexer Webinhalte macht. Seine benutzerfreundliche API ermöglicht eine nahtlose Integration mit C# und es unterstützt auch JavaScript-lastige Inhalte, wodurch sichergestellt wird, dass dynamische Webseiten genau konvertiert werden.

Warum iTextSharp statt IronPDF wählen?

Ein Entwickler könnte sich für iTextSharp entscheiden, wenn er eine Open-Source-Lösung mit flexiblen Anpassungsmöglichkeiten bevorzugt. iTextSharp, heute bekannt als iText7, eignet sich für diejenigen, die das Fachwissen haben, seine Komplexität zu bewältigen, insbesondere wenn fortgeschrittenes HTML und CSS beteiligt sind.

Kann IronPDF JavaScript in HTML-Inhalten verarbeiten?

Ja, IronPDF kann JavaScript innerhalb von HTML-Inhalten aufgrund seiner fortgeschrittenen Renderfähigkeiten verarbeiten und ist damit eine geeignete Wahl für die Umwandlung dynamischer und interaktiver Webseiten in PDFs.

Wie installiere ich IronPDF in einem C#-Projekt?

Sie können IronPDF über den NuGet-Paket-Manager in Visual Studio installieren. Nutzen Sie den Befehl Install-Package IronPdf in der Paket-Manager-Konsole oder suchen Sie nach IronPDF im NuGet-Paket-Manager-UI.

Was sollte bei der Wahl zwischen IronPDF und iTextSharp berücksichtigt werden?

Bei der Auswahl zwischen den beiden sollten Sie Ihren Bedarf an Benutzerfreundlichkeit, CSS- und JavaScript-Unterstützung, Lizenzanforderungen und die Komplexität der HTML-Inhalte berücksichtigen. IronPDF glänzt in modernen Webtechnologien und nahtloser Integration, während iTextSharp eine gute Wahl für diejenigen ist, die eine Open-Source-Lösung bevorzugen.

Gibt es eine Lizenzanforderung für IronPDF?

Ja, IronPDF erfordert eine kommerzielle Lizenz für die Nutzung über Entwicklungsumgebungen hinaus. Lizenzen können basierend auf dem benötigten Unterstützungs- und Funktionsniveau erworben werden.

Was sind einige häufige Probleme bei der Konvertierung von HTML in PDF mit iTextSharp?

Häufige Probleme mit iTextSharp umfassen die Handhabung komplexer HTML- und CSS-Strukturen, da möglicherweise zusätzliche Konfigurationen und Anpassungen erforderlich sind. Entwickler müssen oft ihren Code anpassen, um eine ordnungsgemäße Stilisierung und Darstellung fortgeschrittener Webinhalte zu gewährleisten.

Wie vergleicht sich IronPDF mit anderen PDF-Bibliotheken wie Aspose.PDF?

IronPDF bietet Benutzerfreundlichkeit und umfassende Unterstützung für moderne Webstandards, ähnlich wie Aspose.PDF. Sein wettbewerbsfähiger Preis und Funktionsumfang machen es zu einer starken Wahl für Entwickler, die eine zuverlässige HTML-zu-PDF-Konvertierung benötigen, ohne Qualität und Leistung zu beeinträchtigen.

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