如何在IronPDF C#中將XML轉換為PDF
IronPDF透過執行XSLT轉換,將XML轉換為HTML,然後使用ChromePdfRenderer.RenderHtmlAsPdf渲染該HTML以將XML轉換為PDF的C#。 IronPDF沒有原生的XML渲染器,因此支援的路徑總是XML到XSLT/HTML到PDF。
XML儲存結構化資料,沒有任何視覺佈局,所以無法單獨在頁面上繪製。 XSLT樣式表提供了該呈現:它將每個XML元素映射到HTML標記上,而該HTML則攜帶PDF將顯示的字體、表格和樣式。 要了解更多基礎轉換,請參閱Microsoft關於XslCompiledTransform類別的指南。
使用XslCompiledTransform載入XSLT樣式表,將XML文件轉換為HTML字串,然後將該字串交給IronPDF。 轉換透過IronPDF的HTML到PDF引擎完成,該引擎渲染了樣式表定義的佈局。
-
1Install IronPDF with NuGet Package Manager
-
2複製並運行這段程式碼片段。
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");C# -
3部署以在您的實時環境中測試
今天就開始在您的專案中使用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文件轉換?
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");
輸出
我如何控制PDF的佈局和頁面設置?
在調用RenderingOptions以控制邊距、方向、頁眉和頁腳。 這些選項適用於樣式表生成的HTML,因此頁面級關注點停留在C#中,而元素級樣式則留在XSLT及其CSS中。
下面的例子保持縱向方向,修剪頂部和底部邊距,並新增連續頁眉和頁碼頁腳。 要查看完整的開關設置,請參閱渲染選項指南,並要新增每頁編號,請參閱頁碼。
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");
輸出
我如何處理複雜的XML模式?
當XML模式需要條件格式或存在於文件之外的資料時,通過XsltArgumentList將運行時值傳遞給樣式表。 樣式表通過<!-- xsl:param>讀取每個值,因此相同的模板可以標記低庫存、列印報告日期或基於元素值分支,而不需要更改C#程式碼。
這種模式將轉換邏輯保留在XSLT中,巢狀元素、屬性和<xsl:choose>分支處理結構。 下載catalog-params.xslt樣式表以查看其使用的參數和條件標記。
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");
輸出
資訊圖表

結論
您透過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。
Is a sample project available to understand XML to PDF conversion using IronPDF?
Yes, a runnable sample project for converting XML to PDF is available for download, providing a starting point for implementing this functionality in your own applications.
What are some common use cases for converting XML to PDF with IronPDF?
Common use cases include generating reports, invoices, catalogs, or any document where structured data needs to be presented in a professional and easily distributable format.
How is the HTML output managed during the XML transformation process?
During the transformation process, HTML output is typically managed using a `StringWriter` and an `XmlWriter`, which convert the XML based on the XSLT rules into an in-memory HTML string for further PDF conversion.
Can IronPDF handle pagination features for the generated PDFs?
Yes, IronPDF supports pagination features such as adding page numbers and footers through its rendering options, providing flexibility in creating structured, multi-page PDF documents.

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。