比較

SelectPdf vs IronPDF:技術比較ガイド

SelectPdfとIronPDFの比較: .NET PDF生成の比較ガイド

.NET開発者がHTMLからPDFへの変換ライブラリを評価する場合、SelectPdfとIronPDFはプラットフォーム機能が大きく異なる異なるアーキテクチャのアプローチです。 SelectPdfは古いBlink/WebKitベースのレンダリングエンジンを使用し、Windowsのみのデプロイメントを行う商用ライブラリを提供していますが、IronPdfは最新のChromiumベースのソリューションを提供し、完全なクロスプラットフォームをサポートしています。 この技術比較では、2025年以降に.NETアプリケーションのPDF生成を決定するプロの開発者やアーキテクトにとって最も重要な次元にわたって、両ライブラリを検証します。

SelectPdfを理解する

SelectPdfは、C#を使用してHTMLコンテンツをPDFに変換するために設計された商用ライブラリです。 このライブラリは、アプリケーション内にPDF生成機能をシームレスに統合することを必要とする開発者向けに作られています。 SelectPdfのAPIは、HtmlToPdfコンバータクラスとPdfDocumentオブジェクトパターンを中心に構成されており、HTMLからPDFへの変換を簡単に行うことができます。

SelectPdfの強みはシンプルなAPIにあり、初めてPDFを作成する開発者にとって魅力的な選択肢です。 しかし、潜在的なユーザーは、デプロイオプションと最新のWeb標準サポートに影響する重大な制限を認識する必要があります。

重大な制限:クロスプラットフォーム機能を宣伝していますが、SelectPdfはWindows環境でのみ機能します。 これは、Azure Functions、Dockerコンテナ、Linuxベースのホスティングなどのクラウドベースのデプロイソリューションを検討する際に、大きな障壁となります。

IronPDFの理解

IronPDFは、最新のChromiumレンダリングエンジンを使用する、商業的にサポートされているPDF生成ライブラリを提供します。このライブラリは、CSS Grid、高度なFlexbox、CSS Variablesを含む最新のCSS3機能をサポートし、HTML、CSS、JavaScriptをブラウザレベルの完全な忠実度でPDF文書に変換します。

IronPdfはWindows、Linux(10以上のディストリビューション)、macOS、Azure Functions、AWS Lambda、Dockerコンテナを含むクラウド環境で動作します。 ライブラリはNuGetパッケージとしてインストールされ、.NET 10を含む最新の.NETプラットフォームを完全にサポートします。

プラットフォームサポートの問題

SelectPdfとIronPdfの最も大きな違いは、プラットフォームのサポートにあります。 これは、デプロイオプション、CI/CDパイプライン、クラウド採用戦略に影響します。

SelectPdfプラットフォームの制限事項

SelectPdfは明示的にサポートしていません:

  • Linux(ディストリビューションを問わず)
  • macOS
  • Dockerコンテナ
  • Azure Functions
  • AWSラムダ
  • Google クラウド機能
  • ARMベースのシステム

SelectPdfはWindows固有のライブラリに依存しているため、他のプラットフォームには移植できません。

// ❌セレクトPDF- This code FAILS on Linux/Docker
using SelectPdf;

// Deployment toAzure App Service(Linux)- FAILS
// Deployment to Docker container - FAILS
// Deployment toAWSラムダ- FAILS
// GitHub Actions on ubuntu-latest - FAILS

var converter = new HtmlToPdf();
var doc = converter.ConvertHtmlString("<h1>Hello</h1>");
// Exception:セレクトPDFonly works on Windows
// ❌セレクトPDF- This code FAILS on Linux/Docker
using SelectPdf;

// Deployment toAzure App Service(Linux)- FAILS
// Deployment to Docker container - FAILS
// Deployment toAWSラムダ- FAILS
// GitHub Actions on ubuntu-latest - FAILS

var converter = new HtmlToPdf();
var doc = converter.ConvertHtmlString("<h1>Hello</h1>");
// Exception:セレクトPDFonly works on Windows
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFクロスプラットフォームサポート

IronPDFは包括的なクロスプラットフォーム展開を提供します:

// ✅IronPDF- Works everywhere
using IronPdf;

//Azure App Service(Linux)- WORKS
// Docker container - WORKS
//AWSラムダ- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
// ✅IronPDF- Works everywhere
using IronPdf;

//Azure App Service(Linux)- WORKS
// Docker container - WORKS
//AWSラムダ- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

プラットフォーム サポートの比較

プラットフォームセレクトPDFIronPDF
Windows Server 2019+
Windows 10/11
Ubuntu 20.04+
Debian 10 以上
CentOS 7 以上
アルパインリナックス
Amazon Linux 2
macOS 10.15+
Azure App Service(Linux)
Azure Functions
AWSラムダ
Docker (Linux)
Kubernetes

レンダリングエンジンの違い

SelectPdfは時代遅れのBlink/WebKitフォークを使用しており、最新のWeb標準に追いついていません。 IronPDFは最新の安定したChromiumレンダリングエンジンを使用しており、最新のCSSとJavaScriptとの互換性を確保しています。

CSS機能サポートの比較

CSS機能セレクトPDFIronPDF
CSSグリッド⚠️ 一部/破損フル
フレックスボックス(基本)
Flexbox(ギャッププロパティ)
CSS変数
CSS calc()⚠️ 有限会社
メディアプリント⚠️ 有限会社
フォントフェイス⚠️ 有限会社
ウェブフォント⚠️ 有限会社
SVG⚠️ 基本フル
CSSトランスフォーム⚠️ 有限会社
CSSアニメーション

モダンな CSS レンダリングの例

SelectPdfは最新のCSSレイアウトに対応していません:

<!-- This modern CSS FAILS or renders incorrectly inセレクトPDF-->

<!--CSSグリッド- Broken -->
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
</div>

<!--CSS変数- Not supported -->
<style>
:root { --primary-color: #007bff; }
h1 { color: var(--primary-color); }
</style>
<!-- This modern CSS FAILS or renders incorrectly inセレクトPDF-->

<!--CSSグリッド- Broken -->
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
</div>

<!--CSS変数- Not supported -->
<style>
:root { --primary-color: #007bff; }
h1 { color: var(--primary-color); }
</style>
HTML

IronPDFは最新のCSSを正しく扱います:

// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャーセレクトPDFIronPDF
Windowsの場合
リナックス❌ 未対応✅ 10以上のディストロ
macOS❌ 未対応フルサポート
ドッカー❌ 未対応公式画像
Azureファンクション❌ 未対応フルサポート
AWSラムダ❌ 未対応フルサポート
CSSグリッド⚠️ 有限会社フルサポート
Flexbox(フレックスボックス⚠️ 有限会社フルサポート
CSS変数について❌ 未対応フルサポート
.NET 10❌ 未対応フルサポート
無料バージョンの制限5ページ豊富なトライアル

HTML文字列からPDFへの変換

コアとなるHTMLからPDFへのワークフローは、ライブラリ間の基本的なAPIの違いを示しています。

SelectPdfのHTML文字列変換

SelectPdfは、HtmlToPdfコンバータを使用し、明確なドキュメントライフサイクル管理を行います:

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このアプローチには以下が必要です:

  • HtmlToPdfコンバータのインスタンスを作成する
  • PdfDocumentを生成するためにConvertHtmlString()を呼び出します。
  • 保存後にdoc.Close()を明示的に呼び出すこと

IronPDFのHTML文字列変換

IronPDFはChromePdfRendererクラスと自動リソース管理を提供します:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

RenderHtmlAsPdf メソッドは Chromium レンダリング エンジンを使用し、リソースのクリーンアップを自動的に処理します。

URLからPDFへの変換

生きているウェブページをPDFに変換することは、どちらのライブラリでも似たようなパターンに従います。

SelectPdfのURL変換

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFのURL変換

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        Console.WriteLine("PDF created successfully");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

RenderUrlAsPdf メソッドは、Chromium エンジンを使用して URL に移動し、JavaScript を実行し、CSS スタイリングを適用し、完全にレンダリングされたページをキャプチャします。

カスタムページ設定

ページ構成では、さまざまなAPIプロパティの命名規則を示します。

SelectPdfページの設定

SelectPdfはconverter.Optionsを通して設定を構成します:

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFページの設定

IronPDFはrenderer.RenderingOptionsを通して設定を行います:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

RenderingOptionsプロパティは、強くタイプされたプロパティを通して、用紙サイズ、余白、および他のPDF設定へのアクセスを提供します。

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

SelectPdfからIronPdfへの移行を検討しているチームは、このマッピングを参考にしてください:

セレクトPDFIronPDFノート
<コード>HtmlToPdf</コード<コード>ChromePdfRenderer</コードコアコンバータ
converter.ConvertHtmlString().<コード>renderer.RenderHtmlAsPdf()</コードHTMLレンダリング
converter.ConvertUrl().renderer.RenderUrlAsPdf()を使用してください。URLレンダリング
<コード>doc.Save()</コード<コード>pdf.SaveAs()</コードファイルに保存
<コード>doc.Close()</コード不要自動クリーンアップ
コンバーター.オプション.PdfPageSizerenderer.RenderingOptions.PaperSizeページサイズ
コンバーター.オプション.PdfPageOrientationrenderer.RenderingOptions.PaperOrientationオリエンテーション
コンバーター.オプション.マージントップrenderer.RenderingOptions.MarginTopマージン
PdfPageSize.A4<コード>PdfPaperSize.A4</コードサイズ列挙
<コード>PdfPageOrientation.Portrait</コード<コード>PdfPaperOrientation.Portrait</コードオリエンテーション列挙
"{page_number}の{total_pages}""{全ページ}の{ページ}"ページ番号プレースホルダ
converter.Header.Add().renderer.RenderingOptions.HtmlHeaderヘッダー
converter.Footer.Add().renderer.RenderingOptions.HtmlFooterフッター

5ページ無料版の制限について

SelectPdfの無料版には厳しい制限があり、評価や開発に影響します:

  • 1つのPDFにつき最大5ページまで
  • 5ページ以降:全ページに積極的な透かしを入れること。
  • "SelectPdfで作成"の透かしは、購入しないと削除できません。
  • 評価ワークフローも限定的

IronPDFは評価中のページ制限を設けず、より寛大なトライアル体験を提供します。

商用価格の比較

アスペクトセレクトPDFIronPDF
開始価格$499$749
無料トライアルページ5ページ以内豊富なトライアル
ウォーターマークの動作5ページ以降は積極的に試用版の透かし
ライセンスタイプ購読オプション永久募集
価格の透明性

複雑な階層明確な価格設定

チームがSelectPdfへの移行を検討するとき

開発チームは、SelectPdfに代わる選択肢を検討する必要があります:

クラウドデプロイメントの要件は、アプリケーションがAzure Functions、AWS Lambda、またはLinuxベースのコンテナ環境で実行する必要がある場合にブロックされます。 SelectPdfのWindowsのみの制限は、このような展開シナリオを完全に妨げます。

現代的なCSSレンダリングの失敗は、現代的なウェブデザインを使用したアプリケーションに影響を与えます。 CSSグリッドレイアウトが崩れたり、Flexboxギャッププロパティが機能しなかったり、CSS変数がSelectPdfの古いレンダリングエンジンでサポートされなかったりします。

.NET 10の採用により、互換性に関する懸念が生じました。 2026年に.NET 10とC# 14をターゲットにする予定のチームには、最新の.NETを完全にサポートするライブラリが必要です。 SelectPdfは.NET 10をサポートしていませんが、IronPDFはフルサポートしています。

CI/CDパイプラインの制限は、GitHub Actions、Azure DevOps、またはその他のビルドシステムがLinuxベースのエージェントを使用している場合に現れます。 SelectPdfはubuntu-latestランナーでは実行できないため、自動テストとデプロイのワークフローが壊れてしまいます。

Dockerコンテナ化は完全にブロックされています。 コンテナベースのアーキテクチャを採用している組織では、DockerデプロイメントでSelectPdfを使用することはできません。

長所とトレードオフ

SelectPdfの強み

  • 基本的なHTMLからPDFへの変換のためのシンプルでわかりやすいAPI
  • 低価格(499ドル)
  • 基本的なCSSが必要なWindowsのみの導入シナリオに適しています。

SelectPdfの制限事項

  • Windowsのみのデプロイメント(Linux、macOS、Docker、クラウド機能は不可)
  • 旧式のBlink/WebKitレンダリングエンジン
  • 限定的なCSSグリッド、Flexboxギャップ、およびCSS変数のサポート
  • 積極的な透かし入りの無料版では5ページ制限
  • .NET 10のサポートはありません。
  • Azure Functions、AWS Lambda、コンテナ環境にはデプロイできません。
  • 明示的なdoc.Close()呼び出しが必要です。

IronPDFの強み

  • 完全なクロスプラットフォーム対応(Windows、Linux 10+ディストロ、macOS、Docker)
  • CSS3とJavaScriptをフルサポートした最新のChromiumレンダリング
  • クラウドネイティブデプロイメント(Azure Functions、AWS Lambda、Kubernetes)
  • .NET 10をフルサポート
  • 包括的なドキュメントと専門的なサポート
  • 自動リソース管理(Close()不要)
  • PDF操作機能 (マージ、分割、透かし)
  • デジタル署名とセキュリティ機能

IronPDFについての考察

  • 高い開始価格 ($749)
  • 商用ライセンスモデル

結論

SelectPdfとIronPDFは異なる展開コンテキストと技術要件に対応しています。 SelectPdfは、基本的なCSSが必要なWindowsのみの環境で、無料版の5ページという制限を受け入れられるような、わかりやすいオプションを提供します。

クロスプラットフォームデプロイメント、最新のCSSレンダリング、クラウド機能のサポート、コンテナ環境を必要とするアプリケーションに対して、IronPdfはSelectPdfでは提供できない重要な機能を提供します。 Linux、Docker、Azure Functions、AWS Lambdaへのデプロイ機能は、Windowsのみのライブラリでは満たせない最新のインフラ要件に対応しています。

SelectPdfからIronPDFへの移行を検討する際には、導入プラットフォーム、CSSの複雑さ、.NETのバージョンターゲット、クラウドの採用戦略など、各チーム固有の要件を考慮する必要があります。 2026年の.NET 10で最新のクラウドネイティブアーキテクチャをターゲットとするチームにとって、IronPDFのクロスプラットフォームChromiumベースのアーキテクチャは、SelectPdfのWindowsのみのアプローチよりも持続可能な基盤を提供します。


実装ガイダンスについては、IronPDF HTML-to-PDFチュートリアルと、最新の.NETアプリケーションのためのPDF生成パターンをカバーするドキュメントをご覧ください。 プラットフォーム固有のデプロイメントについては、LinuxデプロイメントガイドDockerドキュメント.を参照してください。