Como Converter XML para PDF no IronPDF C
IronPDF converte XML em PDF em C# executando uma transformação XSLT que transforma o XML em HTML, depois renderizando esse HTML com ChromePdfRenderer.RenderHtmlAsPdf. IronPDF não tem renderizador XML nativo, então o caminho suportado é sempre XML para XSLT/HTML para PDF.
XML contém dados estruturados sem layout visual, então não pode ser desenhado em uma página por si só. Uma folha de estilos XSLT fornece essa apresentação: ela mapeia cada elemento XML para a marcação HTML, e esse HTML transporta as fontes, tabelas e estilo que o PDF mostrará. Para ler mais sobre a transformação subjacente, consulte o guia da Microsoft sobre a classe XslCompiledTransform.
Início rápido: Converter XML para PDF com IronPDF
Carregue uma folha de estilos XSLT com XslCompiledTransform, transforme seu arquivo XML em uma string HTML, depois entregue essa string ao IronPDF. A conversão é executada através do motor HTML para PDF do IronPDF, que renderiza o layout que a folha de estilos define.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
-
Copie e execute este trecho de código.
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"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Download the C# library for converting XML to PDF
- Use o método
Loadpara importar a folha de estilos XSLT - Transforme o XML em uma string HTML com o método
Transform - Renderize o HTML para PDF com
RenderHtmlAsPdf - Salve o documento PDF no local desejado.
Como eu converto um arquivo XML para PDF em C#?
Converta um arquivo XML encadeando três etapas: carregue uma folha de estilos XSLT com XslCompiledTransform, transforme o XML em HTML, depois chame RenderHtmlAsPdf no resultado. A folha de estilos decide como cada elemento XML aparece, e o IronPDF renderiza o HTML que ela produz através do motor Chromium.
A transformação escreve seu HTML para um StringBuilder através de um XmlWriter, que mantém todo o documento na memória e evita um arquivo temporário no disco. Essa string HTML é o que você passa para o renderizador. Uma vez que você tenha o PdfDocument resultante, você pode continuar trabalhando nele, como renderizando uma string HTML para outras partes do mesmo relatório.
Como é a entrada XML?
O exemplo abaixo é um catálogo de produtos. Baixe o arquivo de exemplo catalog.xml e a correspondente folha de estilos catalog.xslt para acompanhar.
Entrada
Que código eu preciso para converter um arquivo 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")
Saída
Como posso controlar o layout do PDF e as configurações de página?
Defina o RenderingOptions do renderizador antes de chamar RenderHtmlAsPdf para controlar margens, orientação, cabeçalhos e rodapés. Essas opções se aplicam ao HTML produzido pela folha de estilos, por isso as preocupações ao nível da página permanecem em C# enquanto o estilo ao nível do elemento permanece no XSLT e seu CSS.
O exemplo abaixo mantém a orientação retrato, ajusta as margens superior e inferior, e adiciona um cabeçalho contínuo e um rodapé com número de página. Para o conjunto completo de opções, veja o guia sobre opções de renderização, e para adicionar numeração por página veja números de página.
: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")
Saída
O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.
Como eu lido com esquemas XML complexos?
Passe valores de runtime na folha de estilos com um XsltArgumentList quando o esquema XML precisar de formatação condicional ou dados que estejam fora do documento. A folha de estilos lê cada valor através de um `
Infográfico
Conclusão
Você converteu XML em PDF transformando-o em HTML com XslCompiledTransform, depois renderizando esse HTML através do IronPDF, e viu como RenderingOptions e XsltArgumentList estendem o resultado para controle de layout e formatação orientada por esquema. Como a saída é HTML comum, as mesmas opções de renderização que controlam cabeçalhos, rodapés e tamanhos de papel em outros lugares no IronPDF se aplicam diretamente ao seu catálogo. Um projeto de exemplo de XML para PDF funcional está disponível para download como ponto de partida.
Perguntas frequentes
Como faço para converter XML em PDF em C#?
IronPDF não possui um renderizador XML nativo, então o caminho suportado é XML para XSLT/HTML para PDF. Carregue uma folha de estilo XSLT com XslCompiledTransform, transforme seu XML em uma string HTML e, em seguida, chame RenderHtmlAsPdf no ChromePdfRenderer do IronPDF para produzir o documento PDF final.
Por que devo usar XSLT para conversão de XML em PDF?
O XSLT oferece a abordagem mais flexível para a conversão de XML para PDF, pois atua como um tradutor personalizado de XML para HTML. Combinado com o mecanismo de renderização Chrome do IronPDF, esse método garante uma conversão perfeita em termos de pixels, mantendo o controle total sobre a formatação dos dados XML no documento PDF final.
Quais são os passos para implementar a conversão de XML para PDF?
A implementação envolve 5 etapas: 1) Instalar a biblioteca IronPDF C#, 2) Carregar seu modelo XSLT usando o método Load, 3) Transformar XML em HTML usando o método Transform, 4) Renderizar HTML para PDF com as opções de renderização personalizadas do IronPDF e 5) Exportar o documento PDF para o local desejado.
Posso aplicar estilos personalizados à minha conversão de XML para PDF?
Sim, você pode aplicar estilos CSS personalizados para aprimorar a apresentação visual do seu PDF. O IronPDF oferece suporte a estilos CSS responsivos, permitindo que você crie PDFs com formatação profissional a partir de seus dados XML, com controle total sobre fontes, layouts e elementos visuais.
É possível converter XML para PDF com uma única linha de código?
Sim, o IronPDF permite a conversão de XML para PDF em uma única linha por meio do encadeamento de métodos: new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(XslCompiledTransform.Load("template.xslt").Transform(XmlReader.Create("data.xml"), new StringWriter()).ToString()).SaveAs("output.pdf");
Qual mecanismo de renderização é usado para a conversão de XML para PDF?
IronPDF renderiza o HTML produzido pela sua transformação XSLT usando um motor de renderização Chromium, oferecendo saída pixel-perfect e compatibilidade com padrões web modernos. O próprio XML nunca é renderizado diretamente; é o HTML transformado que se torna o PDF.

