Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

iTextSharp HTML zu PDF der "Dokument hat keine Seiten"-Fehler mit IronPDF gelöst

Die Konvertierung von HTML in PDF ist eine häufige Anforderung in .NET-Anwendungen, aber Entwickler, die iTextSharp verwenden, stoßen oft auf den frustrierenden iTextSharp HTML to PDF "das Dokument hat keine Seiten" Fehler. Dieser Fehler tritt auf, wenn die Generierung von PDF-Dokumenten fehlschlägt und Entwickler nach einer Lösung suchen müssen. Lassen Sie uns untersuchen, warum dies geschieht und wie man es mit IronPDFs HTML-zu-PDF-Funktionen effektiv lösen kann.

Was verursacht den Fehler "Dokument hat keine Seiten"?

Die Ausnahme "Dokument hat keine Seiten" tritt auf, wenn der Parser von iTextSharp den HTML-Inhalt nicht in ein gültiges PDF-Dokument verarbeiten kann. Derselbe Fehler tritt typischerweise beim Schließen des Dokuments auf, wie in vielen Stack Overflow-Threads zu diesem Problem beschrieben:

static void Main(string[] args)
{
    Document pdfDoc = new Document(PageSize.A4);
    FileStream stream = new FileStream("output.pdf", FileMode.Create);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    // HTML parsing fails silently
    var sr = new StringReader("<div>Complex HTML</div>");
    XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    pdfDoc.Close(); // Exception: The document has no pages
    Console.WriteLine("Error: Document has no pages");
}
static void Main(string[] args)
{
    Document pdfDoc = new Document(PageSize.A4);
    FileStream stream = new FileStream("output.pdf", FileMode.Create);
    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
    pdfDoc.Open();
    // HTML parsing fails silently
    var sr = new StringReader("<div>Complex HTML</div>");
    XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
    pdfDoc.Close(); // Exception: The document has no pages
    Console.WriteLine("Error: Document has no pages");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Konsolenausgabe

Konsole zeigt Fehlermeldung an

Dieser Code versucht, eine PDF-Datei zu erstellen, stößt aber auf eine Ausnahme, weil XMLWorker den HTML-Inhalt nicht erfolgreich analysieren konnte. Der Schreibvorgang wird abgeschlossen, aber dem Dokument pdfdoc wird kein Inhalt hinzugefügt, was zu einer leeren Datei führt. Dieser Parsing-Fehler ist eines der häufigsten Probleme, mit denen Entwickler bei der Konvertierung von HTML in PDF in ASP.NET-Anwendungen auf einem Server konfrontiert werden.

Warum hat XMLWorker das gleiche Problem in neuen Dokumenten?

XMLWorker hat zwar den veralteten HTMLWorker ersetzt, stößt aber immer noch auf das gleiche Problem mit bestimmten HTML-Strukturen. Das Problem besteht, weil XMLWorker strenge Parsing-Anforderungen hat, wie in iText's official forums dokumentiert:

public static void CreatePDF(string html, string path)
{
    using (var fs = new FileStream(path, FileMode.Create))
    {
        var document = new Document();
        var writer = PdfWriter.GetInstance(document, fs);
        document.Open();
        document.Add(new Paragraph("")); // Workaround to avoid error
        // Add phrase for testing
        var phrase = new Phrase("Draft version", FontFactory.GetFont("Arial", 8));
        document.Add(phrase);
        using (var sr = new StringReader(html))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, sr);
        }
        document.Close();
    }
}
public static void CreatePDF(string html, string path)
{
    using (var fs = new FileStream(path, FileMode.Create))
    {
        var document = new Document();
        var writer = PdfWriter.GetInstance(document, fs);
        document.Open();
        document.Add(new Paragraph("")); // Workaround to avoid error
        // Add phrase for testing
        var phrase = new Phrase("Draft version", FontFactory.GetFont("Arial", 8));
        document.Add(phrase);
        using (var sr = new StringReader(html))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, sr);
        }
        document.Close();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgangs-PDF

PDF erstellt mit XMLWorker

Das Hinzufügen eines leeren neuen Absatzes verhindert den unmittelbaren Fehler, aber komplexes HTML mit Tabellenelementen, Bildern oder benutzerdefinierten Schriftarten wird oft nicht korrekt wiedergegeben. Der Inhalt kann in der resultierenden PDF-Datei fehlen oder falsch formatiert sein. Entwickler stoßen oft auf das gleiche Problem, wenn sie HTML mit eingebetteten Stilen, Hyperlink-Elementen oder bestimmten Breiteneigenschaften verarbeiten. Die Null-Referenzen und die fehlende Darstellung von Elementen schaffen zusätzliche Probleme, die geklärt werden müssen.

Wie kann modernes HTML ohne denselben Fehler konvertiert werden?

Betrachten wir ein Szenario aus der Praxis: die Konvertierung einer gestylten Rechnung von HTML in PDF. Dieses Beispiel verdeutlicht den Unterschied zwischen den beiden Ansätzen. Das folgende Beispiel enthält häufige Elemente, die häufig Probleme verursachen:

<!-- Invoice HTML with modern styling -->
<!DOCTYPE html>
<html>
<head>
    <title>Invoice Sample</title>
    <meta name="description" content="Invoice template for testing">
</head>
<body>
    <div style="font-family: Arial; width: 100%;">
        <h1 style="color: #2e6c80;">Invoice #12345</h1>
        <p>Date: <span id="date">2025-01-15</span></p>
        <table style="width: 100%; border-collapse: collapse;">
            <tr>
                <td style="border: 1px solid #ddd; padding: 8px;">Item</td>
                <td style="border: 1px solid #ddd; padding: 8px;">Price</td>
            </tr>
            <tr>
                <td style="border: 1px solid #ddd; padding: 8px;">Service</td>
                <td style="border: 1px solid #ddd; padding: 8px;">$100.00</td>
            </tr>
        </table>
        <a href="http://example.com">View Terms</a>
    </div>
</body>
</html>
<!-- Invoice HTML with modern styling -->
<!DOCTYPE html>
<html>
<head>
    <title>Invoice Sample</title>
    <meta name="description" content="Invoice template for testing">
</head>
<body>
    <div style="font-family: Arial; width: 100%;">
        <h1 style="color: #2e6c80;">Invoice #12345</h1>
        <p>Date: <span id="date">2025-01-15</span></p>
        <table style="width: 100%; border-collapse: collapse;">
            <tr>
                <td style="border: 1px solid #ddd; padding: 8px;">Item</td>
                <td style="border: 1px solid #ddd; padding: 8px;">Price</td>
            </tr>
            <tr>
                <td style="border: 1px solid #ddd; padding: 8px;">Service</td>
                <td style="border: 1px solid #ddd; padding: 8px;">$100.00</td>
            </tr>
        </table>
        <a href="http://example.com">View Terms</a>
    </div>
</body>
</html>
HTML

iTextSharp's Ausgabe

iTextSharp Rechnungsausgabe

IronPDFs Ausgabe

IronPDF gerenderte Rechnungsausgabe

Mit dem XMLWorker von iTextSharp könnte diese Rechnung aufgrund des Tabellenstylings, der Breiteneigenschaften oder der Schriftspezifikationen scheitern. Das Dokument hat keine Seitenfehler, die häufig auftreten, wenn diese Elemente nicht unterstützt werden. Auch Hyperlinks und andere Verweise werden möglicherweise nicht korrekt wiedergegeben.

Bei der Arbeit mit der serverseitigen PDF-Erzeugung benötigen Entwickler eine zuverlässige Methode, die mit Anhängen umgehen kann, die richtigen Kopfzeilen für den Download von Inhalten setzt und Daten aus Webformularen verarbeitet. Bei der Erstellung produktionsreifer Dateien kommt es auf die Details an. In vielen Threads in Entwicklerforen werden diese Probleme diskutiert, wobei Entwickler Testfälle posten, die das gleiche Problem in verschiedenen Szenarien zeigen.

Wie erledigtIronPDFdie Konvertierung von HTML- in PDF-Dokumente?

IronPDF verwendet eine Chrome-basierte Rendering-Engine, die HTML genau so verarbeitet, wie es in einem Webbrowser angezeigt wird. Dieser Ansatz eliminiert Parsing-Fehler und unterstützt alle modernen HTML/CSS-Funktionen. Erfahren Sie mehr über Konvertierung von HTML-Dateien in PDF oder erkunden Sie die ChromePdfRenderer API:

using IronPdf;
static void Main(string[] args)
{
    var renderer = new ChromePdfRenderer();
    // Same HTML that failed with iTextSharp
    string HTML = @"<div style='font-family: Arial; width: 100%;'>
        <h1 style='color: #2e6c80;'>Invoice #12345</h1>
        <table style='width: 100%; border-collapse: collapse;'>
            <tr>
                <td style='border: 1px solid #ddd; padding: 8px;'>Item</td>
                <td style='border: 1px solid #ddd; padding: 8px;'>Price</td>
            </tr>
        </table>
    </div>";
    var PDF = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("invoice.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    var renderer = new ChromePdfRenderer();
    // Same HTML that failed with iTextSharp
    string HTML = @"<div style='font-family: Arial; width: 100%;'>
        <h1 style='color: #2e6c80;'>Invoice #12345</h1>
        <table style='width: 100%; border-collapse: collapse;'>
            <tr>
                <td style='border: 1px solid #ddd; padding: 8px;'>Item</td>
                <td style='border: 1px solid #ddd; padding: 8px;'>Price</td>
            </tr>
        </table>
    </div>";
    var PDF = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("invoice.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF-Ausgabe

PDF-Datei mitIronPDFausgeben

Mit diesem Code wird die PDF-Datei ausnahmslos erfolgreich erstellt. Die Methode verarbeitet komplexe HTML- und CSS-Inhalte automatisch, so dass keine Umgehungslösungen erforderlich sind. Der Inhalt wird pixelgenau wiedergegeben und entspricht der Browser-Vorschau.

Welche ist die beste Lösung für eine zuverlässige PDF-Generierung?

Wenn Sie die beiden Bibliotheken für die Konvertierung von HTML in PDF vergleichen, sollten Sie diese Hauptunterschiede beachten:

Feature iTextSharp mit XMLWorker IronPDF
Moderne HTML/CSS-Unterstützung Beschränkt Voll
JavaScript-Ausführung Keine Ja
Fehlerbehandlung Parse-Ausnahmen allgemein Zuverlässiges Rendering
Komplexe Tabellen Scheitert oft Volle Unterstützung
Benutzerdefinierte Schriftarten Erfordert das Einbetten von Schriftarten Automatische Bearbeitung
Lernkurve Steil Einfache API

Für Entwickler, die mit dem Fehler "Dokument hat keine Seiten" konfrontiert sind, bietet die Migration zuIronPDFeine sofortige Lösung. Der Konvertierungsprozess ist einfach zu handhaben:

// Before (iTextSharp)
var document = new Document();
PdfWriter.GetInstance(document, stream);
// Complex parsing code...
// After (IronPDF)
var PDF = new ChromePdfRenderer().RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
// Before (iTextSharp)
var document = new Document();
PdfWriter.GetInstance(document, stream);
// Complex parsing code...
// After (IronPDF)
var PDF = new ChromePdfRenderer().RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die vereinfachte API bedeutet, dass weniger Code gewartet werden muss und keine Parsing-Fehler zu beheben sind. Diese Lösung des Problems wurde von Entwicklern geschätzt, die eine zuverlässige PDF-Generierung benötigen.

NuGet Mit NuGet installieren

PM >  Install-Package IronPdf

Schauen Sie sich IronPDF auf NuGet für eine schnelle Installation an. Mit über 10 Millionen Downloads transformiert es die PDF-Entwicklung mit C#. Sie können auch das DLL oder den Windows Installer herunterladen.

Starten Sie Ihre kostenlose Testversion und erleben Sie die fehlerfreie Konvertierung von HTML in PDF.

Abschluss

Die Fehlermeldung "Dokument hat keine Seiten" rührt von grundlegenden Parsing-Beschränkungen her, die auch mit XMLWorker fortbestehen. Es gibt zwar Umgehungslösungen, aber sie lösen nicht das grundlegende Problem der komplexen HTML-Verarbeitung. IronPDFs Chrome-basiertes Rendering bietet eine zuverlässige Lösung, die moderne Webinhalte ohne Parsing-Ausnahmen verarbeitet.

Für Produktionsanwendungen, die eine konsistente PDF-Erzeugung aus HTML erfordern, beseitigtIronPDFdie Frustration bei der Fehlersuche im Parser und liefert professionelle Ergebnisse. Das System verarbeitet alle HTML-Elemente, CSS-Stile und sogar JavaScript und sorgt dafür, dass Ihre Dokumente immer korrekt wiedergegeben werden. Egal, ob Sie Rechnungen, Berichte oder andere Dokumente mit Text, Tabellen und Bildern erstellen,IronPDFist die Antwort, nach der Entwickler gesucht haben.

Hinweis:iTextSharp und XMLWorker sind eingetragene Marken der jeweiligen Eigentümer. Diese Seite ist nicht mit iTextSharp oder XMLWorker verbunden, wird nicht von ihnen unterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Was verursacht den iTextSharp HTML zu PDF 'das Dokument hat keine Seiten' Fehler?

Der Fehler "Das Dokument hat keine Seiten" in iTextSharp tritt auf, wenn der Parsing-Prozess während der Konvertierung von HTML in PDF fehlschlägt, oft aufgrund von Problemen mit dem HTML-Inhalt oder nicht unterstützten Funktionen.

Gibt es eine Alternative zu iTextSharp für die Konvertierung von HTML in PDF?

Ja, IronPDF bietet eine zuverlässige Lösung für die Konvertierung von HTML in PDF in .NET-Anwendungen und überwindet viele Einschränkungen von iTextSharp.

Wie geht IronPDF mit der Konvertierung von HTML in PDF anders um als iTextSharp?

IronPDF bietet robustere Parsing-Funktionen und unterstützt ein breiteres Spektrum an HTML- und CSS-Funktionen, wodurch die Wahrscheinlichkeit von Konvertierungsfehlern, wie z. B. dem Fehler "keine Seiten", verringert wird.

Kann IronPDF komplexe HTML-Dokumente in PDF konvertieren?

IronPDF wurde entwickelt, um komplexe HTML-Dokumente zu verarbeiten, einschließlich solcher mit fortgeschrittenen CSS-, JavaScript- und Multimedia-Elementen, und um eine genaue PDF-Ausgabe zu gewährleisten.

Warum sollten Entwickler IronPDF gegenüber iTextSharp bevorzugen?

Entwickler könnten IronPDF gegenüber iTextSharp aufgrund seiner Benutzerfreundlichkeit, der umfassenden Unterstützung für HTML und CSS und seiner Fähigkeit, qualitativ hochwertige PDFs ohne häufige Fehler zu erzeugen, bevorzugen.

Unterstützt IronPDF JavaScript und CSS während des PDF-Konvertierungsprozesses?

IronPDF unterstützt JavaScript, CSS und modernes HTML5 und stellt damit sicher, dass die visuelle Integrität des Original-HTML in der PDF-Ausgabe erhalten bleibt.

Wie kann ich mit IronPDF für die Konvertierung von HTML in PDF beginnen?

Um mit IronPDF zu beginnen, können Sie die detaillierten Tutorien und die Dokumentation auf der IronPDF-Website nutzen, die Schritt-für-Schritt-Anleitungen für die Implementierung bereitstellen.

Was sind die Vorteile der Verwendung von IronPDF for .NET-Entwickler?

IronPDF bietet .NET-Entwicklern ein robustes und flexibles Werkzeug für die PDF-Erzeugung, mit Vorteilen wie Unterstützung für komplexe HTML-Inhalte, einfache Integration und zuverlässige Leistung.

Bietet IronPDF Unterstützung bei der Behebung von Fehlern bei der PDF-Konvertierung?

Ja, IronPDF bietet umfangreiche Support-Ressourcen, einschließlich Dokumentation und ein Support-Team, das bei der Fehlersuche und -behebung bei Problemen mit der PDF-Konvertierung hilft.

Gibt es eine Möglichkeit, die Fähigkeiten von IronPDF vor dem Kauf zu testen?

IronPDF bietet eine kostenlose Testversion an, die es Entwicklern ermöglicht, die Funktionen zu testen und die Leistung zu bewerten, bevor sie eine Kaufentscheidung treffen.

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