HTMLからPDFへのコンバーター比較: 無料対有料ライブラリ .NET 向け
XMLは直接PDFに変換できないため、変換は二段階で進みます:XSLTスタイルシートがXMLをHTMLに変換し、その後IronPDFがそのHTMLをChromeエンジンを通じてPDFにレンダリングします。IronPDFは最終ステップのみを所有します。 XSLTが形を整えます。 この分離によりデータ(XML)とプレゼンテーション(スタイルシート)が分けられ、以下のユースケースはすべてそれに依存しています。
using IronPdf;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
var transform = new XslCompiledTransform();
transform.Load("invoice.xslt");
using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
transform.Transform(reader, null, writer);
}
new ChromePdfRenderer()
.RenderHtmlAsPdf(writer.ToString())
.SaveAs("invoice.pdf");Imports IronPdf
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Dim transform As New XslCompiledTransform()
transform.Load("invoice.xslt")
Using writer As New StringWriter()
Using reader As XmlReader = XmlReader.Create("invoice.xml")
transform.Transform(reader, Nothing, writer)
End Using
Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf(writer.ToString()).SaveAs("invoice.pdf")
End Using(注意: Transform は StringWriter に書き込みます; HTMLを返さないので、呼び出し後に writer.ToString() を読み取ります。)
電子請求書と機械可読な請求書フォーマット
ここでこのパイプラインが最も効果を発揮します。UBL、Factur-X、ZUGFeRDのような標準は請求書をXMLデータとして提供し、誰でも読める文書としては提供しません。 スタイルシートがそのXMLを整形済みの請求書に変換し、IronPDFが実際に人が受け取るPDFを生成します。
金融、政府、医療における規制データフィード
これらの業界は構造化されたXML(税申告書、財務諸表、臨床文書、規制提出書類)を交換します。 各スキーマは独自のスタイルシートを通じて準拠する印刷レイアウトにマッピングされ、その変換ロジックはC#から分離されます。
商品カタログと価格表
XMLで提供されるカタログフィードはスタイルシートを通して整形済みのパンフレットや表に変換され、スタイル設定はプロプライエタリなPDF言語ではなく馴染みのあるHTMLとCSSによって行われます。
一つのソース、多くのドキュメントバリアント
プレゼンテーションがテンプレートに含まれているため、一つのXMLソースからスタイルシートを交換することで複数の出力(顧客請求書、内部コピー、地域化バージョン)を生成できます。 データの変更もコンパイルの必要もありません。
パラメータ化および条件付きドキュメント
テンプレートがレンダリングされる前に、通貨、地域、または下書きステータスで分岐できるように XsltArgumentList を使用して変換に実行時値を渡します:
var args = new XsltArgumentList();
args.AddParam("currency", "", "AUD");
using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
transform.Transform(reader, args, writer);
}Imports System.Xml
Imports System.Xml.Xsl
Imports System.IO
Dim args As New XsltArgumentList()
args.AddParam("currency", "", "AUD")
Using writer As New StringWriter()
Using reader As XmlReader = XmlReader.Create("invoice.xml")
transform.Transform(reader, args, writer)
End Using
End Using使用しない場合
シンプルなXML構造や一度きりの変換の場合、XSLTレイヤーはオーバーヘッドです; XMLを解析して直接HTMLを構築してください。 異なるスキーマを扱うシステムや、保守性があり再利用可能な変換ロジックが必要な場合にスタイルシートアプローチが価値を証明します。
分離の意義はなぜか
このパイプラインの強みはその分離にあります。 IronPDFは最終ステップでピクセル単位の正確なレンダリングを提供しますが、柔軟性、複数フォーマット、条件付きレイアウト、スキーマの独立性はすべて、変換をコードではなくXSLTに保つことから来ています。

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