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

