Comment convertir un XML en PDF dans IronPDF C
IronPDF convertit XML en PDF en C# en exécutant une transformation XSLT qui transforme le XML en HTML, puis en rendant ce HTML avec ChromePdfRenderer.RenderHtmlAsPdf. IronPDF n'a pas de moteur XML natif, donc le chemin pris en charge est toujours XML à XSLT/HTML en PDF.
Le XML contient des données structurées sans mise en page visuelle, il ne peut donc pas être dessiné sur une page par lui-même. Une feuille de style XSLT fournit cette présentation : elle associe chaque élément XML à un balisage HTML, et ce HTML contient les polices, les tableaux et le style que le PDF affichera. Pour en savoir plus sur la transformation sous-jacente, consultez le guide de Microsoft sur la classe XslCompiledTransform.
Démarrage rapide : Convertir du XML en PDF avec IronPDF
Chargez une feuille de style XSLT avec XslCompiledTransform, transformez votre fichier XML en une chaîne HTML, puis passez cette chaîne à IronPDF. La conversion passe par le moteur HTML en PDF d'IronPDF, qui rend la mise en page définie par la feuille de style.
-
Installez IronPDF avec le Gestionnaire de Packages NuGet
-
Copiez et exécutez cet extrait de code.
var transform = new System.Xml.Xsl.XslCompiledTransform(); transform.Load("catalog.xslt"); var html = new System.IO.StringWriter(); transform.Transform("catalog.xml", null, html); new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html.ToString()).SaveAs("output.pdf"); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Download the C# library for converting XML to PDF
- Utilisez la méthode
Chargerpour importer la feuille de style XSLT - Transformez le XML en chaîne HTML avec la méthode
Transformer - Rendez le HTML en PDF avec
RenderHtmlAsPdf - Enregistrez le document PDF à l'emplacement souhaité
Comment convertir un fichier XML en PDF en C# ?
Convertissez un fichier XML en enchaînant trois étapes : chargez une feuille de style XSLT avec XslCompiledTransform, transformez le XML en HTML, puis appelez RenderHtmlAsPdf sur le résultat. La feuille de style décide de l'apparence de chaque élément XML, et IronPDF rend le HTML produit à travers le moteur Chromium.
La transformation écrit son HTML dans un StringBuilder via un XmlWriter, ce qui maintient tout le document en mémoire et évite un fichier temporaire sur le disque. Cette chaîne HTML est ce que vous passez au moteur de rendu. Une fois que vous détenez le PdfDocument résultant, vous pouvez continuer à travailler dessus, comme rendre une chaîne HTML pour d'autres parties du même rapport.
À quoi ressemble l'entrée XML ?
L'exemple ci-dessous est un catalogue de produits. Téléchargez le fichier exemple catalog.xml et la feuille de style correspondante catalog.xslt pour suivre.
Entrée
Quel code est nécessaire pour convertir un fichier XML ?
:path=/static-assets/pdf/content-code-examples/how-to/xml-to-pdf-from-file.cs
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;
// Load the XSLT stylesheet that maps the XML schema onto HTML
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("catalog.xslt");
// Apply the transform to the XML file and capture the HTML output
StringBuilder htmlBuilder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true };
using (XmlReader reader = XmlReader.Create("catalog.xml"))
using (XmlWriter writer = XmlWriter.Create(htmlBuilder, settings))
{
transform.Transform(reader, null, writer);
}
string html = htmlBuilder.ToString();
// Render the resulting HTML as a PDF with IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("xml-to-pdf.pdf");
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Xsl
Imports IronPdf
' Load the XSLT stylesheet that maps the XML schema onto HTML
Dim transform As New XslCompiledTransform()
transform.Load("catalog.xslt")
' Apply the transform to the XML file and capture the HTML output
Dim htmlBuilder As New StringBuilder()
Dim settings As New XmlWriterSettings With {.OmitXmlDeclaration = True, .Indent = True}
Using reader As XmlReader = XmlReader.Create("catalog.xml")
Using writer As XmlWriter = XmlWriter.Create(htmlBuilder, settings)
transform.Transform(reader, Nothing, writer)
End Using
End Using
Dim html As String = htmlBuilder.ToString()
' Render the resulting HTML as a PDF with IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("xml-to-pdf.pdf")
Sortie
Comment puis-je contrôler la mise en page PDF et les paramètres de page ?
Définissez le RenderingOptions du moteur de rendu avant d'appeler RenderHtmlAsPdf pour contrôler les marges, l'orientation, les en-têtes et les pieds de page. Ces options s'appliquent au HTML produit par la feuille de style, donc les préoccupations au niveau de la page restent en C# tandis que le style au niveau de l'élément reste dans le XSLT et son CSS.
L'exemple ci-dessous maintient l'orientation portrait, réduit les marges supérieures et inférieures, et ajoute un en-tête courant et un pied de page avec numéro de page. Pour l'ensemble complet des bascules, voir le guide sur les options de rendu, et pour ajouter une numérotation par page, consultez numéros de page.
:path=/static-assets/pdf/content-code-examples/how-to/xml-to-pdf-advanced.cs
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;
using IronPdf.Rendering;
// Transform the XML into HTML using the XSLT stylesheet
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("catalog.xslt");
StringBuilder htmlBuilder = new StringBuilder();
using (XmlReader reader = XmlReader.Create("catalog.xml"))
using (XmlWriter writer = XmlWriter.Create(htmlBuilder, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
transform.Transform(reader, null, writer);
}
// Configure rendering options before generating the PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
CenterText = "Spring Product Catalog",
FontSize = 12
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
RightText = "Page {page} of {total-pages}",
FontSize = 10
};
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdf.SaveAs("xml-to-pdf-advanced.pdf");
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Xsl
Imports IronPdf
Imports IronPdf.Rendering
' Transform the XML into HTML using the XSLT stylesheet
Dim transform As New XslCompiledTransform()
transform.Load("catalog.xslt")
Dim htmlBuilder As New StringBuilder()
Using reader As XmlReader = XmlReader.Create("catalog.xml")
Using writer As XmlWriter = XmlWriter.Create(htmlBuilder, New XmlWriterSettings With {.OmitXmlDeclaration = True})
transform.Transform(reader, Nothing, writer)
End Using
End Using
' Configure rendering options before generating the PDF
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.TextHeader = New TextHeaderFooter With {
.CenterText = "Spring Product Catalog",
.FontSize = 12
}
renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
.RightText = "Page {page} of {total-pages}",
.FontSize = 10
}
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
pdf.SaveAs("xml-to-pdf-advanced.pdf")
Sortie
Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.
Comment gérer des schémas XML complexes ?
Passez des valeurs d'exécution dans la feuille de style avec un XsltArgumentList lorsque le schéma XML nécessite un format conditionnel ou des données se trouvant en dehors du document. La feuille de style lit chaque valeur à travers un <!-- xsl:param>, donc le même modèle peut signaler un stock faible, tamponner une date de rapport ou bifurquer sur les valeurs des éléments sans aucun changement dans le code C#.
Ce modèle maintient la logique de transformation dans le XSLT, où les éléments imbriqués, les attributs et les branches de <xsl:choose> gèrent la structure. Téléchargez la feuille de style catalog-params.xslt pour voir les paramètres et le balisage conditionnel qu'elle utilise.
:path=/static-assets/pdf/content-code-examples/how-to/xml-to-pdf-parameters.cs
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;
// Pass runtime values into the stylesheet with an XsltArgumentList
XsltArgumentList xsltArgs = new XsltArgumentList();
xsltArgs.AddParam("reportDate", "", DateTime.Now.ToString("MMMM d, yyyy"));
xsltArgs.AddParam("minStock", "", 50);
// Load a parameterized stylesheet that reads <xsl:param> values
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("catalog-params.xslt");
StringBuilder htmlBuilder = new StringBuilder();
using (XmlReader reader = XmlReader.Create("catalog.xml"))
using (XmlWriter writer = XmlWriter.Create(htmlBuilder, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
transform.Transform(reader, xsltArgs, writer);
}
// Render the parameterized HTML as a PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdf.SaveAs("xml-to-pdf-parameters.pdf");
Imports System
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Xsl
Imports IronPdf
' Pass runtime values into the stylesheet with an XsltArgumentList
Dim xsltArgs As New XsltArgumentList()
xsltArgs.AddParam("reportDate", "", DateTime.Now.ToString("MMMM d, yyyy"))
xsltArgs.AddParam("minStock", "", 50)
' Load a parameterized stylesheet that reads <xsl:param> values
Dim transform As New XslCompiledTransform()
transform.Load("catalog-params.xslt")
Dim htmlBuilder As New StringBuilder()
Using reader As XmlReader = XmlReader.Create("catalog.xml")
Using writer As XmlWriter = XmlWriter.Create(htmlBuilder, New XmlWriterSettings With {.OmitXmlDeclaration = True})
transform.Transform(reader, xsltArgs, writer)
End Using
End Using
' Render the parameterized HTML as a PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
pdf.SaveAs("xml-to-pdf-parameters.pdf")
Sortie
Infographie
Conclusion
Vous avez converti XML en PDF en le transformant en HTML avec XslCompiledTransform, puis en rendant ce HTML via IronPDF, et vous avez vu comment RenderingOptions et XsltArgumentList étendent le résultat pour le contrôle de mise en page et le formatage piloté par le schéma. Étant donné que la sortie est un HTML ordinaire, les mêmes options de rendu qui dirigent les en-têtes, pieds de page, et tailles de papier ailleurs dans IronPDF s'appliquent directement à votre catalogue. Un projet échantillon exécutable de conversion de XML en PDF est disponible pour le téléchargement comme point de départ.
Questions Fréquemment Posées
Comment convertir du XML en PDF en C# ?
IronPDF n'a pas de moteur XML natif, donc le chemin pris en charge est XML en XSLT/HTML vers PDF. Chargez une feuille de style XSLT avec XslCompiledTransform, transformez votre XML en une chaîne HTML, puis appelez RenderHtmlAsPdf sur le ChromePdfRenderer d'IronPDF pour produire le document PDF final.
Pourquoi devrais-je utiliser XSLT pour la conversion de XML en PDF ?
XSLT constitue l'approche la plus flexible pour la conversion de XML en PDF, car il agit comme un traducteur personnalisé de XML en HTML. Combinée au moteur de rendu Chrome d'IronPDF, cette méthode garantit une conversion parfaite au pixel près tout en conservant un contrôle total sur la façon dont vos données XML sont formatées dans le document PDF final.
Quelles sont les étapes de la conversion de XML en PDF ?
La mise en œuvre comporte 5 étapes : 1) Installer la bibliothèque C# d'IronPDF, 2) Charger votre modèle XSLT à l'aide de la méthode Load, 3) Transformer le XML en HTML à l'aide de la méthode Transform, 4) Rendre le HTML en PDF à l'aide des options de rendu personnalisées d'IronPDF, et 5) Exporter le document PDF à l'emplacement de votre choix.
Puis-je appliquer un style personnalisé à ma conversion XML en PDF ?
Oui, vous pouvez appliquer un style CSS personnalisé pour améliorer la présentation visuelle de votre fichier PDF. IronPDF prend en charge le style CSS réactif, ce qui vous permet de créer des PDF formatés de manière professionnelle à partir de vos données XML, avec un contrôle total sur les polices, les mises en page et les éléments visuels.
Est-il possible de convertir du XML en PDF en une seule ligne de code ?
Oui, IronPDF permet la conversion XML vers PDF en une seule ligne en enchaînant les méthodes : new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(XslCompiledTransform.Load("template.xslt").Transform(XmlReader.Create("data.xml"), new StringWriter()).ToString()).SaveAs("output.pdf") ;
Quel est le moteur de rendu utilisé pour la conversion de XML en PDF ?
IronPDF rend le HTML produit par votre transformation XSLT en utilisant un moteur de rendu Chromium, offrant une sortie pixel-parfaite et une compatibilité avec les standards web modernes. XML lui-même n'est jamais rendu directement ; c'est le HTML transformé qui devient le PDF.

