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 クラスのガイドをご覧ください。
クイックスタート: IronPDFを使用して XML を PDF に変換する
XSLTスタイルシートをXslCompiledTransformで読み込み、XMLファイルをHTML文字列に変換し、その文字列をIronPDFに渡します。 IronPDFのHTMLからPDFエンジンで変換が行われ、スタイルシートが定義するレイアウトがレンダリングされます。
-
IronPDF をNuGetパッケージマネージャでインストール
-
このコード スニペットをコピーして実行します。
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ドキュメントを希望の場所に保存する
XMLファイルをC#でPDFに変換するには?
XMLファイルを変換するには、3つのステップを連鎖します: RenderHtmlAsPdfを呼び出します。 スタイルシートは各XML要素の外観を決定し、IronPDFはChromiumエンジンを通して生成されたHTMLをレンダリングします。
変換は、そのHTMLをXmlWriterを通じて書き込み、ドキュメント全体をメモリに保持し、ディスク上の一時ファイルを回避します。 その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でスタイルシートに実行時の値を渡します。 スタイルシートは、各値を`
インフォグラフィック
結論
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になります。

