Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

HTML zu PDF-Konverter Vergleich: Kostenlose vs kostenpflichtige Bibliotheken for .NET

XML kann nicht direkt in PDF gerendert werden, daher erfolgt der Weg in zwei Schritten: Ein XSLT-Stylesheet transformiert das XML in HTML, dann rendert IronPDF dieses HTML zu PDF über seine Chrome-Engine. IronPDF übernimmt nur den letzten Teil; XSLT übernimmt die Gestaltung. Diese Aufteilung hält Daten (das XML) und Präsentation (das Stylesheet) getrennt, und die unten aufgeführten Anwendungsfälle stützen sich alle darauf.

using IronPdf;
using System.IO;
using System.Xml;
using System.Xml.Xsl;

var transform = new XslCompiledTransform();
transform.Load("invoice.xslt");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, null, writer);
}

new ChromePdfRenderer()
    .RenderHtmlAsPdf(writer.ToString())
    .SaveAs("invoice.pdf");
using IronPdf;
using System.IO;
using System.Xml;
using System.Xml.Xsl;

var transform = new XslCompiledTransform();
transform.Load("invoice.xslt");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, null, writer);
}

new ChromePdfRenderer()
    .RenderHtmlAsPdf(writer.ToString())
    .SaveAs("invoice.pdf");
Imports IronPdf
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl

Dim transform As New XslCompiledTransform()
transform.Load("invoice.xslt")

Using writer As New StringWriter()
    Using reader As XmlReader = XmlReader.Create("invoice.xml")
        transform.Transform(reader, Nothing, writer)
    End Using

    Dim renderer As New ChromePdfRenderer()
    renderer.RenderHtmlAsPdf(writer.ToString()).SaveAs("invoice.pdf")
End Using
$vbLabelText   $csharpLabel

(Hinweis: Transform schreibt in das StringWriter; es gibt nicht den HTML zurück, daher lesen Sie writer.ToString() nach dem Aufruf.)

Elektronische Rechnungsstellung und maschinenlesbare Rechnungsformate

Hier zahlt sich die Pipeline am stärksten aus. Standards wie UBL, Factur-X und ZUGFeRD tragen Rechnungen als XML-Daten, nicht als Dokumente, die jemand lesen kann. Ein Stylesheet verwandelt dieses XML in eine formatierte Rechnung, und IronPDF erzeugt das PDF, das eine Person tatsächlich erhält.

Regulierte Datenfeeds in Finanzwesen, Regierung und Gesundheitswesen

Diese Branchen tauschen strukturiertes XML aus: Steuererklärungen, Finanzberichte, klinische Dokumente, regulatorische Einreichungen. Jedes Schema wird durch sein eigenes Stylesheet in ein konformes Drucklayout abgebildet, wobei die Transformationslogik aus Ihrem C# herausgehalten wird.

Produktkataloge und Preislisten

Ein Katalog-Feed in XML wird durch ein Stylesheet zu einer formatierten Broschüre oder Tabelle, wobei das Styling mit vertrautem HTML und CSS gehandhabt wird, anstatt einer proprietären PDF-Sprache.

Eine Quelle, viele Dokumentvarianten

Da die Präsentation in der Vorlage lebt, kann eine XML-Quelle mehrere Ausgaben (Kundenrechnung, interne Kopie, lokalisierte Version) durch Austausch von Stylesheets erzeugen. Keine Datenänderungen, keine Neukompilierung.

Parametrisierte und bedingte Dokumente

Übergeben Sie Laufzeitwerte in die Transformation mit XsltArgumentList, sodass eine Vorlage auf Währung, Region oder Entwurfsstatus verweisen kann, bevor sie gerendert wird:

var args = new XsltArgumentList();
args.AddParam("currency", "", "AUD");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, args, writer);
}
var args = new XsltArgumentList();
args.AddParam("currency", "", "AUD");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, args, writer);
}
Imports System.Xml
Imports System.Xml.Xsl
Imports System.IO

Dim args As New XsltArgumentList()
args.AddParam("currency", "", "AUD")

Using writer As New StringWriter()
    Using reader As XmlReader = XmlReader.Create("invoice.xml")
        transform.Transform(reader, args, writer)
    End Using
End Using
$vbLabelText   $csharpLabel

Wann man dies nicht verwenden sollte

Für eine einfache XML-Struktur oder eine einmalige Umwandlung ist die XSLT-Schicht Overhead; parsen Sie das XML und erstellen Sie das HTML direkt. Der Stylesheet-Ansatz erweist sich als nützlich in Systemen, die mit unterschiedlichen Schemata umgehen oder eine wartbare, wiederverwendbare Transformationslogik benötigen.

Warum die Aufteilung der Punkt ist

Die Stärke der Pipeline ist diese Trennung. IronPDF bietet Ihnen eine pixelgenaue Wiedergabe im letzten Schritt, aber die Flexibilität, mehrere Formate, bedingte Layouts, Schemaunabhängigkeit, all das ergibt sich daraus, dass die Transformation in XSLT und nicht im Code bleibt.

Häufig gestellte Fragen

Kann IronPDF XML direkt in PDF konvertieren?

Nicht direkt. Die Pipeline läuft in zwei Schritten: Ein XSLT-Stylesheet transformiert das XML in HTML, dann rendert IronPDF dieses HTML zu PDF über seine Chrome-Engine. IronPDF übernimmt nur den letzten Rendering-Schritt.

Wie konvertiere ich XML in PDF in C# mit XSLT und IronPDF?

Laden Sie die XSLT-Datei mit XslCompiledTransform, transformieren Sie das XML in einen HTML-String mit einem StringWriter, dann übergeben Sie diesen String an ChromePdfRenderer.RenderHtmlAsPdf. Beachten Sie, dass Transform zum Writer schreibt — rufen Sie writer.ToString() auf, um das HTML nach Abschluss der Transformation zu erhalten.

Was sind die Vorteile, XSLT zu verwenden, um XML vor der PDF-Erstellung zu transformieren?

Die Trennung von Daten (XML) und Präsentation (XSLT-Stylesheet) bedeutet, dass eine XML-Quelle mehrere Dokumentvarianten (Kundenrechnung, interne Kopie, lokalisierte Version) erzeugen kann, indem Stylesheets gewechselt werden. Die Transformationslogik bleibt außerhalb des C#-Codes und bleibt über Schemata hinweg wiederverwendbar.

Kann ich Parameter in die XSLT-Transformation zur Laufzeit übergeben?

Ja. Verwenden Sie XsltArgumentList mit AddParam, um Werte wie Währung, Region oder Entwurfsstatus in das Stylesheet vor dem Rendern zu übergeben. Die Vorlage kann dann anhand dieser Werte bedingte Ausgaben erzeugen.

Welche E-Rechnungsstandards kann diese Pipeline verarbeiten?

Die XSLT-Pipeline kann jeden XML-basierten Rechnungsstandard wie UBL (Universal Business Language), Factur-X und ZUGFeRD verarbeiten. Diese übertragen Rechnungsdaten als strukturiertes XML; ein entsprechendes XSLT-Stylesheet transformiert jedes Format in ein lesbares HTML-Layout, das IronPDF zu PDF rendert.

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