如何使用 C# 將 XML 轉換為 PDF

Convert XML to PDF in C# and VB.NET

This article was translated from English: Does it need improvement?
Translated
View the article in English

透過 C# 將 XML 轉換為 PDF:首先利用 XSLT 轉換將 XML 轉為 HTML,再使用 IronPDF 將 HTML 渲染為 PDF,為複雜的 XML 架構提供可靠的解決方案。

在 C# 中將 XML 直接轉換為 PDF 需要採取策略性的方法。 最有效的方法是使用 XSLT 作為轉換模板。 XML 透過 XSLT 轉換,經由 HTML(5) 轉為 PDF。 XSLT 文件定義了如何依據既定標準,將來自特定架構的 XML 轉換為精確的 HTML 呈現形式。 XSLT 作為自訂轉換器,負責將 XML 轉換為 HTML。 IronPDF 的 Chrome 渲染引擎可確保從 HTML 到 PDF 的精準轉換。

請參閱 Microsoft 的《使用 XslCompiledTransform 類別》文章,以進一步了解 XSLT 轉換。

快速入門:使用 IronPDF 將 XML 轉換為 PDF using IronPDF 輕鬆將 XML 檔案轉換為 PDF。 只需幾行程式碼,即可使用 XSLT 將 XML 資料轉換為 HTML,並渲染為 PDF 文件。 IronPDF 提供簡易的整合方式,同時能維持格式並確保跨平台相容性。 此流程利用 IronPDF 的 HTML 轉 PDF 功能來建立高品質的文件。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 請複製並執行此程式碼片段。

    new IronPdf.ChromePdfRenderer()
        .RenderHtmlAsPdf(
            XslCompiledTransform.Load("template.xslt")
                .Transform(XmlReader.Create("data.xml"), new StringWriter())
                .ToString()
        )
        .SaveAs("output.pdf");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronPDF

    arrow pointer

如何在 C# 中實作 XML 轉 PDF 功能?

若要在 C# 中實現 XML 轉 PDF,請將 XSLT 轉換與 PDF 生成技術結合使用。 首先,建立一個 XSLT 範本,用以定義 XML 資料應如何格式化為 HTML。 接著使用 XslCompiledTransform 類別,將此轉換套用至 XML 資料。 最後,請使用 IronPDF 的 ChromePdfRenderer 將生成的 HTML 轉為 PDF

該流程包含載入 XSLT 範本、將其套用至 XML 資料來源,並擷取 HTML 輸出。 將此 HTML 直接傳遞給 IronPDF 的渲染器,該渲染器會處理建立格式正確的 PDF 文件所涉及的所有複雜流程。 針對進階情境,請套用自訂 CSS 樣式以提升 PDF 輸出的視覺呈現效果。

為何要使用 XSLT 進行 XML 轉 PDF/A 轉換?

XSLT(可擴展樣式表語言轉換)提供了將 XML 轉換為 PDF 的最靈活且易於維護的方法。 與直接將 XML 轉換為 PDF 的函式庫不同,XSLT 允許定義精確的轉換規則,以處理複雜的 XML 架構和嵌套結構。 此方法可在維持資料(XML)與呈現(XSLT)分離的同時,完全掌控最終文件的樣式。

透過 XSLT,可利用 HTML 和 CSS 等現有網頁技術來設定 PDF 輸出的樣式。 請使用熟悉的工具與技術,而非學習專有的 PDF 格式化語言。 此外,XSLT 範本具有可重複使用性,且無需修改 C# 程式碼即可輕鬆調整,使維護工作變得簡單明瞭。

需要哪些關鍵組件?

XML 轉 PDF 轉換的核心元件包括用於 XML 處理的 System.Xml 命名空間、用於 XSLT 轉換的 XslCompiledTransform 類別,以及用於 HTML 轉 PDF 渲染的 IronPDF。 透過 NuGet 安裝 IronPDF 以使用 PDF 生成功能。

XSLT 範本作為轉換的藍圖,定義了 XML 元素如何映射至 HTML 結構。 範本應包含正確的 HTML 結構及樣式資訊,可採用內嵌樣式或透過 CSS 實現。 針對複雜版面配置,請在轉換過程中妥善管理字型處理圖片

何時應選擇此方法而非其他替代方案?

當處理需要靈活格式化選項的結構化 XML 資料時,XSLT 轉換方法表現尤為出色。 此工具適用於生成報告、發票、型錄或需將 XML 資料呈現於特定版面的文件。 此方法適用於從同一 XML 來源支援多種輸出格式,透過為不同的呈現需求建立不同的 XSLT 範本來實現。

然而,若僅需處理簡單的 XML 結構或偶爾進行文件轉換,建議考慮採用更簡易的替代方案。 針對基礎轉換,請直接解析 XML 並透過程式碼建構 HTML。 但對於處理各種 XML 架構或需要可維護轉換邏輯的生產系統而言,結合 IronPDF 的 XSLT 方法提供了最可靠的解決方案。

生成的 HTML 字串或檔案將透過 .NET PDF Generator 渲染為 PDF 檔案。 請從此 XML 轉 PDF 轉換下載展示 IronPDF 將 XML 轉換為 PDF 功能的範例專案。

範例

// XSLT template that defines the transformation from XML to HTML
string xslt = @"<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
...
// XSLT template that defines the transformation from XML to HTML
string xslt = @"<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
...
' XSLT template that defines the transformation from XML to HTML
Dim xslt As String = "<?xml version='1.0' encoding='UTF-8'?>" & _
"<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>" & _
"..."
$vbLabelText   $csharpLabel

進階 XML 轉 PDF/A 轉換,具備自訂渲染選項

生產環境的應用程式通常需要對 PDF 輸出擁有更細緻的控制權。 IronPDF 提供豐富的渲染選項,可自訂最終文件。 此增強範例展示了如何應用Professional格式、頁首、頁尾及頁面設定:

// Configure advanced rendering options
var renderer = new ChromePdfRenderer();

...
// Configure advanced rendering options
var renderer = new ChromePdfRenderer();

...
' Configure advanced rendering options
Dim renderer As New ChromePdfRenderer()

...
$vbLabelText   $csharpLabel

處理複雜的 XML 架構

在處理複雜的 XML 結構時,XSLT 範本必須能處理嵌套元素、屬性及條件格式設定。 請添加浮水印加入頁碼,以提升文件專業度。 建議使用 XSLT 參數以提升範本的靈活性:

// Create XSLT argument list for dynamic parameters
XsltArgumentList args = new XsltArgumentList();
...
// Create XSLT argument list for dynamic parameters
XsltArgumentList args = new XsltArgumentList();
...
' Create XSLT argument list for dynamic parameters
Dim args As New XsltArgumentList()
...
$vbLabelText   $csharpLabel

資訊圖表

使用 XSLT 將 XML 轉換為 HTML,展示目錄資料轉換為表格格式的範例

常見問題

如何在 C# 中將 XML 轉換為 PDF?

若要在 C# 中將 XML 轉換為 PDF,請使用 XSLT 轉換先將 XML 轉換為 HTML,再透過 IronPDF 將 HTML 渲染為 PDF。使用 XslCompiledTransform 載入您的 XSLT 範本,將其套用至 XML 資料以產生 HTML,然後使用 IronPDF 的 ChromePdfRenderer 來建立最終的 PDF 文件。

為什麼應該使用 XSLT 進行 XML 轉 PDF/A 轉換?

XSLT 提供了最靈活的 XML 轉 PDF 解決方案,因為它充當了從 XML 到 HTML 的自訂轉換器。結合 IronPDF 的 Chrome 渲染引擎,此方法可確保像素級精準的轉換,同時讓您完全掌控 XML 資料在最終 PDF 文件中的格式呈現。

執行 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 採用 Chrome 渲染引擎進行 HTML 轉 PDF 轉換,確保像素級精準的渲染效果,並與現代網頁標準完全相容。此引擎能處理所有複雜流程,將轉換後的 XML 資料轉化為格式正確的 PDF 文件。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

審閱者:
Jeff Fritz
Jeffrey T. Fritz
首席程式經理 - .NET 社群團隊
Jeff 同時也是 .NET 與 Visual Studio 團隊的首席程式經理。他是 .NET Conf 虛擬會議系列的執行製作人,並主持每週播出兩次的開發者直播節目《Fritz and Friends》,在節目中他會與觀眾一起探討技術話題並共同編寫程式碼。Jeff 負責撰寫工作坊內容、準備簡報,並為 Microsoft Build、Microsoft Ignite、.NET Conf 以及 Microsoft MVP Summit 等微軟最大規模的開發者活動規劃內容。
準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。