IronPDF C#でXMLをPDFに変換する方法
IronPDFは、XMLをHTMLに変換し、そのHTMLをChromePdfRenderer.RenderHtmlAsPdfでレンダリングすることで、C#でXMLをPDFに変換します。 IronPDFにはネイティブなXMLレンダラーがないため、サポートされる経路は常にXMLからXSLT/HTMLへの変換からPDFへの変換です。
XMLは視覚的レイアウトのない構造化データを保持しているため、それ自体ではページ上に描画することができません。 XSLTスタイルシートがそのプレゼンテーションを提供します: 各XML要素をHTMLマークアップにマッピングし、そのHTMLがPDFで示されるフォント、テーブル、およびスタイリングを提供します。 基礎となる変換について詳しくは、MicrosoftのXslCompiledTransform クラスのガイドをご覧ください。
XSLTスタイルシートをXslCompiledTransformで読み込み、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ドキュメントを希望の場所に保存する
XMLファイルをC#でPDFに変換するには?
XMLファイルを変換するには、3つのステップを連鎖します: RenderHtmlAsPdfを呼び出します。 スタイルシートは各XML要素の外観を決定し、IronPDFはChromiumエンジンを通して生成されたHTMLをレンダリングします。
変換は、そのHTMLをXmlWriterを通じて書き込み、ドキュメント全体をメモリに保持し、ディスク上の一時ファイルを回避します。 その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");
出力
インフォグラフィック

結論
XMLをXsltArgumentListがレイアウト制御とスキーマ駆動のフォーマットでどのように結果を拡張するかを確認しました。 出力が通常のHTMLであるため、IronPDFの他の場所でヘッダー、フッター、および用紙サイズを駆動するのと同じレンダリングオプションが直接カタログに適用されます。 実行可能なXMLからPDFへのサンプルプロジェクトが出発点としてダウンロード可能です。
よくある質問
C# で XML を PDF に変換す る 方法は?
IronPDFにはネイティブXMLレンダラーがないため、サポートされているパスはXMLからXSLT/HTMLへの変換です。XslCompiledTransformでXSLTスタイルシートをロードし、XMLをHTML文字列に変換し、IronPDFのChromePdfRendererでRenderHtmlAsPdfを呼び出して最終的なPDFドキュメントを生成します。
なぜXMLからPDFへの変換にXSLTを使う必要があるのですか?
XSLTはXMLからHTMLへのカスタムトランスレータとして機能するため、XMLからPDFへの変換に最も柔軟なアプローチを提供します。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を作成することができます。
1行のコードで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は、XSLT変換で生成されたHTMLをChromiumレンダリングエンジンを使用してレンダリングし、ピクセルパーフェクトな出力と現代のウェブ標準に対する互換性を提供します。XML自体は直接レンダリングされず、変換されたHTMLがPDFになります。
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は、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。