比較

FO.NET vs IronPDF:技術比較ガイド

.NET開発者がPDF生成ソリューションに注目するとき、FO.NETはXSL-FOドキュメントをPDFに変換する専門ツールとして際立っています。 しかし、時代遅れのXSL-FO言語に依存していること、HTML/CSSをサポートしていないこと、メンテナンスが終了していることから、多くのチームが代替案を検討しています。 IronPdfはほとんどの開発者がすでに慣れ親しんでいるHTML/CSSウェブスタンダードを使用し、Chromiumレンダリングエンジンと毎月の定期的なアップデートを特徴とする最新のソリューションを提供します。

この比較では、.NET PDFのニーズに対して、プロの開発者やアーキテクトが十分な情報を得た上で決断できるように、関連する技術的側面にわたって両ライブラリをレビューします。

FO.NETを理解する

FO.NET(別名FoNet)は、C#を使用してXSL Formatting Object(XSL-FO)ドキュメントをPDFに変換するために設計されたオープンソースライブラリです。 このライブラリはApache 2.0ライセンスの下で動作し、XSL-FO言語をPDFフォーマットに直接マッピングします。

FO.NETは、FonetDriverを主要クラスとして使用し、Make()ファクトリーメソッドがドライバーインスタンスを作成し、Render()メソッドがXSL-FO入力ストリームを処理してPDF出力ストリームを生成します。 構成は、fo:simple-page-masterfo:layout-master-setのような要素や、余白、ページサイズ、フォントのフォーマット属性を使って、XSL-FOマークアップの中で行われます。

重要な制限は、FO.NETがXSL-FOの知識を必要とすることです。XSL-FOは、2001年のW3C仕様で、2006年以降更新されていないXMLベースの言語です。このライブラリはHTMLやCSSをサポートしておらず、ウェブページを直接レンダリングすることはできません。 XSL-FOは、今日の技術分野では時代遅れと考えられており、HTML/CSSを知っている開発者が98%以上いるのに対し、XSL-FOの専門知識を持っている開発者は1%未満です。

オリジナルのCodePlexリポジトリは廃止され、GitHubのフォークもアクティブにメンテナンスされていません。 FO.NETはSystem.Drawingに内部依存しているため、Linux/macOSでは動作せず、Windowsのみの展開に制限されています。

IronPDFの理解

IronPDFは.NET PDFライブラリで、ドキュメントのスタイリングとレイアウトにHTML/CSSを使用し、開発で一般的なWeb標準を使用します。 このライブラリはChromiumレンダリングエンジンを使用しており、FlexboxやGridレイアウトを含むCSS3のフルサポートに加え、JavaScriptの実行も可能です。

IronPDFはChromePdfRendererを主要なレンダリングクラスとして使用し、RenderingOptionsはページサイズ、マージン、ヘッダー、フッター、その他のPDFの設定をプログラムで行います。 このライブラリは、URL の直接レンダリング、HTML 文字列のレンダリング、HTML ファイルのレンダリングをサポートし、保存、マージ、セキュリティ保護、その他の操作が可能な PdfDocument<//code> オブジェクトを生成します。

IronPdfは毎月リリースされ、積極的にメンテナンスされ、真のクロスプラットフォーム(Windows, Linux, macOS)をサポートし、徹底したドキュメントとチュートリアルを提供します。

アーキテクチャとテクノロジーの比較

これらの.NET PDFライブラリの基本的な違いは、入力形式と技術基盤にあります。

アスペクトFO.NETIronPDF
入力フォーマットXSL-FO(時代遅れのXML)HTML/CSS(最新のウェブ標準)
ラーニングカーブスティープ(XSL-FOの専門知識)ジェントル(HTML/CSSの知識)
メンテナンス中止毎月積極的にメンテナンス
プラットフォームサポートWindowsのみ真のクロスプラットフォーム
CSSサポートなしフルCSS3(フレックスボックス、グリッド)
JavaScript(ジャバスクリプトなしJavaScriptフルサポート
URLレンダリングサポートされていません内蔵
最新の機能制限的ヘッダー、フッター、透かし、セキュリティ
ドキュメント古い包括的なチュートリアル

FO.NETは、XSL-FOが文書フォーマットの標準になると予想されたときに設計されました。 それが実現しなかったのです。TTML/CSSが普遍的な文書フォーマットになったのです。 ほとんどのXSL-FOリソースは2005年から2010年のものであり、最新の情報やコミュニティサポートを見つけることはますます難しくなっています。

コードの比較:一般的なPDF操作

HTMLからPDFへの変換

最も基本的な操作は、XSL-FOとHTMLのアプローチの間のモデルの違いを示しています。

FO.NET:(英語

// NuGet: Install-Package Fonet
using Fonet;
using Fonet.Render.Pdf;
using System.IO;
using System.Xml;

class Program
{
    static void Main()
    {
        // FoNet requires XSL-FO format, not HTML
        // First convert HTML to XSL-FO (manual process)
        string xslFo = @"<?xml version='1.0' encoding='utf-8'?>
            <fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
                <fo:layout-master-set>
                    <fo:simple-page-master master-name='page'>
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference='page'>
                    <fo:flow flow-name='xsl-region-body'>
                        <fo:block>Hello World</fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>";

        FonetDriver driver = FonetDriver.Make();
        driver.Render(new StringReader(xslFo), 
            new FileStream("output.pdf", FileMode.Create));
    }
}
// NuGet: Install-Package Fonet
using Fonet;
using Fonet.Render.Pdf;
using System.IO;
using System.Xml;

class Program
{
    static void Main()
    {
        // FoNet requires XSL-FO format, not HTML
        // First convert HTML to XSL-FO (manual process)
        string xslFo = @"<?xml version='1.0' encoding='utf-8'?>
            <fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
                <fo:layout-master-set>
                    <fo:simple-page-master master-name='page'>
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference='page'>
                    <fo:flow flow-name='xsl-region-body'>
                        <fo:block>Hello World</fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>";

        FonetDriver driver = FonetDriver.Make();
        driver.Render(new StringReader(xslFo), 
            new FileStream("output.pdf", FileMode.Create));
    }
}
Imports Fonet
Imports Fonet.Render.Pdf
Imports System.IO
Imports System.Xml

Module Program
    Sub Main()
        ' FoNet requires XSL-FO format, not HTML
        ' First convert HTML to XSL-FO (manual process)
        Dim xslFo As String = "<?xml version='1.0' encoding='utf-8'?>" & _
            "<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>" & _
                "<fo:layout-master-set>" & _
                    "<fo:simple-page-master master-name='page'>" & _
                        "<fo:region-body/>" & _
                    "</fo:simple-page-master>" & _
                "</fo:layout-master-set>" & _
                "<fo:page-sequence master-reference='page'>" & _
                    "<fo:flow flow-name='xsl-region-body'>" & _
                        "<fo:block>Hello World</fo:block>" & _
                    "</fo:flow>" & _
                "</fo:page-sequence>" & _
            "</fo:root>"

        Dim driver As FonetDriver = FonetDriver.Make()
        driver.Render(New StringReader(xslFo), 
                      New FileStream("output.pdf", FileMode.Create))
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html As String = "<h1>Hello World</h1><p>This is HTML content.</p>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

コントラストは明確です。 FO.NETは、XML名前空間宣言、fo:rootfo:layout-master-setfo:simple-page-masterfo:page-sequencefo:flowfo:block要素を含む冗長なXSL-FOマークアップを必要とします。 コードコメントには、次のように明確に記されています:"FoNetはHTMLではなくXSL-FO形式を必要とします。

IronPdfはレンダラーを作成し、標準的なHTMLを渡し、PDFにレンダリングし、開発者がすでに知っている構文を使って簡単な行をセーブします。

高度なHTMLレンダリングオプションについては、HTMLからPDFへの変換ガイドをご覧ください。

URLからPDFへの変換

ウェブページをPDFに変換すると、重大な能力差が明らかになります。

FO.NET:(英語

// NuGet: Install-Package Fonet
using Fonet;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        // FoNet does not support URL rendering directly
        // Must manually download, convert HTML to XSL-FO, then render
        string url = "https://example.com";
        string html = new WebClient().DownloadString(url);

        // Manual conversion from HTML to XSL-FO required (complex)
        string xslFo = ConvertHtmlToXslFo(html); // Not built-in

        FonetDriver driver = FonetDriver.Make();
        driver.Render(new StringReader(xslFo), 
            new FileStream("webpage.pdf", FileMode.Create));
    }

    static string ConvertHtmlToXslFo(string html)
    {
        // Custom implementation required
        throw new System.NotImplementedException();
    }
}
// NuGet: Install-Package Fonet
using Fonet;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        // FoNet does not support URL rendering directly
        // Must manually download, convert HTML to XSL-FO, then render
        string url = "https://example.com";
        string html = new WebClient().DownloadString(url);

        // Manual conversion from HTML to XSL-FO required (complex)
        string xslFo = ConvertHtmlToXslFo(html); // Not built-in

        FonetDriver driver = FonetDriver.Make();
        driver.Render(new StringReader(xslFo), 
            new FileStream("webpage.pdf", FileMode.Create));
    }

    static string ConvertHtmlToXslFo(string html)
    {
        // Custom implementation required
        throw new System.NotImplementedException();
    }
}
Imports Fonet
Imports System.IO
Imports System.Net

Class Program
    Shared Sub Main()
        ' FoNet does not support URL rendering directly
        ' Must manually download, convert HTML to XSL-FO, then render
        Dim url As String = "https://example.com"
        Dim html As String = New WebClient().DownloadString(url)

        ' Manual conversion from HTML to XSL-FO required (complex)
        Dim xslFo As String = ConvertHtmlToXslFo(html) ' Not built-in

        Dim driver As FonetDriver = FonetDriver.Make()
        driver.Render(New StringReader(xslFo), 
                      New FileStream("webpage.pdf", FileMode.Create))
    End Sub

    Shared Function ConvertHtmlToXslFo(html As String) As String
        ' Custom implementation required
        Throw New System.NotImplementedException()
    End Function
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

FO.NETは明示的にURLレンダリングをサポートしていません。 コードコメントには"FoNetはURLレンダリングを直接サポートしていません"、"HTMLからXSL-FOへの手動変換が必要です(複雑)"。ConvertHtmlToXslFo()メソッドはNotImplementedExceptionをスローします。この変換はビルトインではなく、カスタム実装が必要だからです。

IronPdfはネイティブのRenderUrlAsPdf()機能を提供し、URLの取得、JavaScriptの実行、レンダリングを単一のメソッド呼び出しで処理します。

URL レンダリングの詳細については、URL to PDF documentationを参照してください。

カスタム設定の PDF

ページ寸法と余白の設定は、設定アプローチの違いを示しています。

FO.NET:(英語

// NuGet: Install-Package Fonet
using Fonet;
using Fonet.Render.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        // FoNet settings are configured in XSL-FO markup
        string xslFo = @"<?xml version='1.0' encoding='utf-8'?>
            <fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
                <fo:layout-master-set>
                    <fo:simple-page-master master-name='A4' 
                        page-height='297mm' page-width='210mm'
                        margin-top='20mm' margin-bottom='20mm'
                        margin-left='25mm' margin-right='25mm'>
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference='A4'>
                    <fo:flow flow-name='xsl-region-body'>
                        <fo:block font-size='14pt'>Custom PDF</fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>";

        FonetDriver driver = FonetDriver.Make();
        driver.Render(new StringReader(xslFo), 
            new FileStream("custom.pdf", FileMode.Create));
    }
}
// NuGet: Install-Package Fonet
using Fonet;
using Fonet.Render.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        // FoNet settings are configured in XSL-FO markup
        string xslFo = @"<?xml version='1.0' encoding='utf-8'?>
            <fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
                <fo:layout-master-set>
                    <fo:simple-page-master master-name='A4' 
                        page-height='297mm' page-width='210mm'
                        margin-top='20mm' margin-bottom='20mm'
                        margin-left='25mm' margin-right='25mm'>
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference='A4'>
                    <fo:flow flow-name='xsl-region-body'>
                        <fo:block font-size='14pt'>Custom PDF</fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>";

        FonetDriver driver = FonetDriver.Make();
        driver.Render(new StringReader(xslFo), 
            new FileStream("custom.pdf", FileMode.Create));
    }
}
Imports Fonet
Imports Fonet.Render.Pdf
Imports System.IO

Class Program
    Shared Sub Main()
        ' FoNet settings are configured in XSL-FO markup
        Dim xslFo As String = "<?xml version='1.0' encoding='utf-8'?>" & _
            "<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>" & _
                "<fo:layout-master-set>" & _
                    "<fo:simple-page-master master-name='A4' " & _
                        "page-height='297mm' page-width='210mm' " & _
                        "margin-top='20mm' margin-bottom='20mm' " & _
                        "margin-left='25mm' margin-right='25mm'>" & _
                        "<fo:region-body/>" & _
                    "</fo:simple-page-master>" & _
                "</fo:layout-master-set>" & _
                "<fo:page-sequence master-reference='A4'>" & _
                    "<fo:flow flow-name='xsl-region-body'>" & _
                        "<fo:block font-size='14pt'>Custom PDF</fo:block>" & _
                    "</fo:flow>" & _
                "</fo:page-sequence>" & _
            "</fo:root>"

        Dim driver As FonetDriver = FonetDriver.Make()
        driver.Render(New StringReader(xslFo), 
            New FileStream("custom.pdf", FileMode.Create))
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 25;
        renderer.RenderingOptions.MarginRight = 25;

        string html = "<h1 style='font-size:14pt'>Custom PDF</h1>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 25;
        renderer.RenderingOptions.MarginRight = 25;

        string html = "<h1 style='font-size:14pt'>Custom PDF</h1>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Engines.Chrome

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 25
        renderer.RenderingOptions.MarginRight = 25

        Dim html As String = "<h1 style='font-size:14pt'>Custom PDF</h1>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("custom.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

FO.NETのコードコメントには、次のように明記されています:"FoNetの設定はXSL-FOマークアップで構成されます。ページサイズ、マージン、フォーマットは、fo:simple-page-masterの属性としてXML構造内に埋め込まれています。 つまり、コンフィギュレーションは、冗長なXML形式のコンテンツと絡み合っています。

IronPdfはプログラム的なRenderingOptionsプロパティを使用して、コンテンツから設定を分離します。 PaperSizeMarginTopMarginBottomMarginLeftMarginRight などの設定はレンダラー オブジェクトに設定されますが、コンテンツはクリーンな HTML のままです。

APIマッピングリファレンス

FO.NETの移行を評価したり、機能を比較したりする開発者のために、このマッピングは同等の操作を示します:

コア クラス マッピング

FO.NETIronPDF
FonetDriver.Make()を使用してください。new ChromePdfRenderer().
driver.Render(inputStream, outputStream).renderer.RenderHtmlAsPdf(html).
driver.Render(inputFile, outputStream).renderer.RenderHtmlFileAsPdf(path)のようにします。
ドライバー.ベースディレクトリRenderingOptions.BaseUrl</code
driver.OnError += handler.レンダリング周りのトライ/キャッチ

XSL-FOからRenderingOptionsへのマッピング

XSL-FO属性IronPDF レンダリングオプション
ページハイト/ページ幅</code用紙サイズ</code
マージントップ</codeマージントップ</code
マージンボトム</codeマージンボトム</code
マージンレフト</codeマージンレフト</code
margin-rightマージンライト</code
リファレンス指向</codeペーパーオリエンテーション

XSL-FO要素からHTMLへのマッピング

XSL-FO要素HTML相当
<fo:root>のようにします。<html>
<//code>CSS @pageルール
<fo:simple-page-master>CSS @ページ</code
<//code><body> または <div> を使用してください。
<fo:flow>のようにします。<main> または <div> を使用してください。
<//code>HtmlHeaderFooter</code
<fo:block>のようにします。<p><div><h1>-<h6>

|<//code>|<table>| |<//code>|<ul><ol>。| |<//code>|<img>| |<fo:page-number/>|{ページ}プレースホルダ|

機能比較の概要

フィーチャーFO.NETIronPDF
HTMLからPDFへ❌ (手作業によるXSL-FO変換が必要)
URLからPDFへ❌ (サポートされていません)
XSL-FOからPDFへ該当なし
CSS3 サポート✅ (フレックスボックス、グリッド)
JavaScript
ヘッダー/フッターXSL-FO 静的コンテンツHTMLベース
ページ番号fo:ページ番号</code{ページ}プレースホルダ
クロスプラットフォーム❌ (Windowsのみ)
アクティブメンテナンス❌ (放棄)✅ (毎月)

チームがFO.NETからIronPDFへの移行を検討するとき

開発チームが.NETからIronPDFへの移行を評価する理由はいくつかあります:

時代遅れの技術: XSL-FOは2001年のW3C仕様で、2006年以降更新がなく、ほとんど時代遅れと見なされています。 ほとんどのリソースやドキュメントは2005年から2010年のものであり、最新の情報を見つけたり、XSL-FOの専門知識を持つ開発者を雇ったりすることはますます難しくなっています。

急な学習曲線: XSL-FOは、特殊なフォーマットオブジェクト(fo:blockfo:tablefo:page-sequenceなど)を持つ複雑なXMLベースのマークアップを学習する必要があります。 HTML/CSSを知っている開発者が98%以上であるのに対し、XSL-FOを知っている開発者は1%未満です。

HTML/CSSサポートなし: FO.NETはHTMLやCSSをレンダリングできません。HTMLからXSL-FOマークアップに手動で変換する必要がありますが、ライブラリには組み込まれていません。 ウェブコンテンツやHTMLテンプレートを使用しているチームは、カスタム変換ロジックを実装する必要があります。

メンテナンスの放棄:元のCodePlexリポジトリは廃止され、GitHubのフォークもアクティブにメンテナンスされていません。 セキュリティパッチ、バグ修正、新機能の開発は行いません。

プラットフォームの制限: FO.NETにはSystem.Drawingへの内部依存があるため、Linux/macOSでは動作せず、デプロイはWindowsのみの環境に制限されます。 最近のアプリケーションでは、クロスプラットフォームのデプロイがますます必要になっています。

不足しているモダンな機能: JavaScriptのサポートなし、CSS3の機能なし(Flexbox、Grid)、モダンなWebフォントなし、URLの直接レンダリング機能なし。

長所と考慮点

FO.NETの強み

  • 直接XSL-FO変換: XSL-FOからPDFへの変換のために特別に最適化されています。
  • オープンソース: Apache 2.0ライセンスは、使用、変更、配布が自由です。
  • 正確な制御: XSL-FOは、文書のレイアウトを詳細に制御します。

FO.NETについての考察

  • 時代遅れの技術: XSL-FO仕様は2006年以降更新されていません。
  • XSL-FOの知識が必要: 専門知識を持つ開発者は全体の1%未満です。
  • HTMLサポートなし: HTMLまたはCSSコンテンツをレンダリングできません。
  • Abandoned: アクティブなメンテナンスまたはセキュリティアップデートはありません。
  • Windowsのみ: System.Drawingの依存関係はクロスプラットフォームでの使用を妨げます。
  • URLレンダリングなし:ウェブページを直接変換することはできません。
  • 限られたドキュメント: リソースは古いです。

IronPDFの強み

  • HTML/CSS標準: 98%以上の開発者がすでに知っているウェブ技術を使用しています。
  • 最新のレンダリング: CSS3とJavaScriptをフルサポートしたChromiumエンジン。
  • アクティブな開発: 新機能やセキュリティパッチを含む毎月のリリース
  • クロスプラットフォーム: Windows、Linux、macOSに対応しています。
  • 直接URLレンダリング:ネイティブのRenderUrlAsPdf()機能
  • プロフェッショナルな機能: ヘッダー、フッター、透かし、セキュリティ-すべて組み込みです。
  • 包括的なリソース: 豊富なチュートリアルドキュメント

IronPDFについての考察

  • 商用ライセンス: 本番使用ライセンスが必要です。
  • 異なるパラダイム: XSL-FOテンプレートはHTMLに変換する必要があります。

結論

FO.NETとIronPDFは.NETでPDFを生成するための根本的に異なるアプローチです。 FO.NETは、XSL-FOからPDFへの変換というニッチなユースケースに対応していますが、時代遅れの技術への依存、放棄されたメンテナンス、Windowsのみの制限、HTMLサポートの欠如により、新しいプロジェクトで正当化することがますます難しくなっています。

IronPDFはHTML/CSSウェブスタンダードを使用し、現在の開発者のスキルや技術に沿った最新のアプローチを提供します。 HTML、URLを直接レンダリングし、Chromiumエンジンで完全なCSS3を使用できるため、現代のPDF生成要件に適しています。

組織が.NET 10、C# 14、2026年までのアプリケーション開発を計画する中で、技術基盤は重要です。 レガシーなXSL-FOシステムを保守しているチームはFO.NETを使い続けるかもしれませんが、最新のPDF生成の道は明らかに既存のウェブ開発の専門知識を活用するIronPDFのようなHTMLベースのソリューションに向いています。

無料トライアルでIronPDFの評価を開始し、包括的なドキュメントを参照して、特定の要件への適合性を評価してください。