如何在IronPDF C#中将XML转换为PDF
IronPDF通过运行XSLT转换将XML转换为C#中的PDF,该转换将XML转化为HTML,然后使用ChromePdfRenderer.RenderHtmlAsPdf渲染该HTML。 IronPDF没有本地的XML渲染器,因此支持的路径始终是XML到XSLT/HTML再到PDF。
XML保存结构化数据,但没有任何视觉布局,因此它无法自己绘制在页面上。 XSLT样式表提供了这种呈现:它将每个XML元素映射到HTML标记上,而HTML则带有PDF将显示的字体、表格和样式。 要了解有关底层转换的更多信息,请参阅 Microsoft 关于XslCompiledTransform 类的指南。
快速入门:使用IronPDF将 XML 转换为 PDF
使用XslCompiledTransform加载XSLT样式表,将XML文件转换为HTML字符串,然后将该字符串传递给IronPDF。 转换通过IronPDF的HTML到PDF引擎进行,渲染样式表定义的布局。
-
使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf
-
复制并运行这段代码。
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"); -
部署到您的生产环境中进行测试
通过免费试用立即在您的项目中开始使用IronPDF
最小工作流程(5 个步骤)
- 下载用于将XML转换为PDF的C#库
- 使用
Load方法导入XSLT样式表 - 使用
Transform方法将XML转换为HTML字符串 - 使用
RenderHtmlAsPdf将HTML渲染为PDF - 将 PDF 文档保存到所需位置
如何在C#中将XML文件转换为PDF?
通过串联三个步骤转换XML文件:使用RenderHtmlAsPdf。 样式表决定了每个XML元素的外观,IronPDF通过Chromium引擎渲染它生成的HTML。
该转换通过StringBuilder,这将整个文档保存在内存中,避免在磁盘上生成临时文件。 该HTML字符串就是您交给渲染器的内容。 一旦您拥有生成的PdfDocument,您可以继续处理它,例如渲染HTML字符串以用于同一报告的其他部分。
XML输入是什么样的?
下面的示例是产品目录。 下载catalog.xml 样本文件,以及匹配的catalog.xslt 样式表以进行学习。
输入
我需要什么代码来转换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")
输出
我如何控制PDF布局和页面设置?
在调用RenderingOptions以控制页边距、方向、页眉和页脚。 这些选项适用于样式表生成的HTML,因此页面级别的关注点保持在C#中,而元素级别的样式则保持在XSLT及其CSS中。
下面的示例保持纵向方向,修剪上下边距,并添加一个连续的页眉和页码页脚。 有关完整的切换集合,请参阅渲染选项指南,并要添加每页编号,请参阅页码。
: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")
输出
我如何处理复杂的XML模式?
在XML模式需要条件格式或存在于文档之外的数据时,通过XsltArgumentList将运行时值传递到样式表中。 样式表通过`
信息图表
结论
您通过使用XsltArgumentList如何扩展结果以实现布局控制和模式驱动的格式化。 因为输出是普通的HTML,所以推动页眉、页脚和纸张尺寸等的相同渲染选项在IronPDF中的其他地方直接适用于您的目录。 一个可运行的XML到PDF示例项目可以作为起点下载。
常见问题解答
如何用 C# 将 XML 转换为 PDF?
IronPDF没有原生的XML渲染器,因此支持的路径是从XML到XSLT/HTML到PDF。使用XslCompiledTransform加载一个XSLT样式表,将XML转换为HTML字符串,然后在IronPDF的ChromePdfRenderer上调用RenderHtmlAsPdf以生成最终PDF文档。
为什么要使用 XSLT 将 XML 转换为 PDF?
XSLT 为 XML 到 PDF 的转换提供了最灵活的方法,因为它是从 XML 到 HTML 的自定义翻译。结合 IronPDF 的 Chrome 渲染引擎,这种方法可确保像素完美的转换,同时保持对最终 PDF 文档中 XML 数据格式的完全控制。
实现 XML 到 PDF 转换的步骤是什么?
实施过程包括 5 个步骤:1) 安装 IronPDF C# 库;2) 使用 Load 方法加载您的 XSLT 模板;3) 使用 Transform 方法将 XML 转换为 HTML;4) 使用 IronPDF 的自定义渲染选项将 HTML 渲染为 PDF;5) 将 PDF 文档导出到您所需的位置。
我能否将自定义样式应用到 XML 到 PDF 的转换中?
是的,您可以应用自定义 CSS 样式来增强 PDF 输出的视觉效果。IronPDF 支持响应式 CSS 样式,允许您从 XML 数据中创建专业格式的 PDF,并完全控制字体、布局和视觉元素。
是否可以用一行代码将 XML 转换为 PDF?
是的,IronPDF 可通过连锁方法实现单行 XML 到 PDF 的转换:new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(XslCompiledTransform.Load("template.xslt").Transform(XmlReader.Create("data.xml"), new StringWriter()).ToString()).SaveAs("output.pdf");
将 XML 转换为 PDF 时使用什么渲染引擎?
IronPDF使用Chromium渲染引擎渲染XSLT转换生成的HTML,提供像素级的精确输出和与现代Web标准的兼容性。XML本身从未直接渲染,最终生成PDF的HTML是经过转换的HTML。

