C# を使用して XML を PDF に変換する方法

IronPDF C#でXMLをPDFに変換する方法

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

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エンジンで変換が行われ、スタイルシートが定義するレイアウトがレンダリングされます。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  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");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル

    arrow pointer


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")
$vbLabelText   $csharpLabel

出力

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")
$vbLabelText   $csharpLabel

出力

Icon Quote related to 出力

私のお気に入りのこの種のライブラリはIronPDFです。PDFファイルの迅速で効率的な操作が可能です。また、PDF/A形式へのエクスポートやPDF文書へのデジタル署名といった多くの貴重な機能も備えています。

Milan Jovanovic related to 出力

Milan Jovanovic

Microsoft MVP

ケーススタディを見る
Icon Quote related to 出力

IronOCRのおかげで私たちは年間$40,000を手作業の処理から節約し、生産性を向上させ、高影響のタスクにリソースを充てることができます。非常にお勧めします。

Brent Matzelle related to 出力

Brent Matzelle

最高技術責任者, OPYN

ケーススタディを見る
Icon Quote related to 出力

IronSuiteは私たちの業務において重要な役割を果たしています。これらは、フロアプランの作成や在庫管理の改善を含め、ビジネス全体の効率を向上させるツールです。

David Jones related to 出力

David Jones

リードソフトウェアエンジニア、Agorus Build

ケーススタディを見る

複雑なXMLスキーマをどのように処理しますか?

XMLスキーマが条件付きフォーマットやドキュメント外のデータを必要とする場合には、XsltArgumentListでスタイルシートに実行時の値を渡します。 スタイルシートは、各値を`


インフォグラフィック

表形式に変換されたカタログデータを示す、XSLTを使用したXMLからHTMLへの変換

結論

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になります。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたり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サミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。
準備はできましたか?
Nuget ダウンロード 19,936,792 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。