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 WindowsIRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFクロスプラットフォームサポート
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プラットフォーム サポートの比較
| プラットフォーム | セレクトPDF | IronPDF |
|---|---|---|
| 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機能 | セレクトPDF | IronPDF |
|---|---|---|
| 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>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機能比較の概要
| フィーチャー | セレクトPDF | IronPDF |
|---|---|---|
| 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このアプローチには以下が必要です:
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.comRenderHtmlAsPdf メソッドは 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.comIronPDFの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.comRenderUrlAsPdf メソッドは、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.comIronPDFページの設定
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.comRenderingOptionsプロパティは、強くタイプされたプロパティを通して、用紙サイズ、余白、および他のPDF設定へのアクセスを提供します。
APIマッピングリファレンス
SelectPdfからIronPdfへの移行を検討しているチームは、このマッピングを参考にしてください:
| セレクトPDF | IronPDF | ノート |
|---|---|---|
| <コード>HtmlToPdf</コード | <コード>ChromePdfRenderer</コード | コアコンバータ |
converter.ConvertHtmlString(). | <コード>renderer.RenderHtmlAsPdf()</コード | HTMLレンダリング |
converter.ConvertUrl(). | renderer.RenderUrlAsPdf()を使用してください。 | URLレンダリング |
| <コード>doc.Save()</コード | <コード>pdf.SaveAs()</コード | ファイルに保存 |
| <コード>doc.Close()</コード | 不要 | 自動クリーンアップ |
コンバーター.オプション.PdfPageSize | renderer.RenderingOptions.PaperSize。 | ページサイズ |
コンバーター.オプション.PdfPageOrientation | renderer.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は評価中のページ制限を設けず、より寛大なトライアル体験を提供します。
商用価格の比較
| アスペクト | セレクトPDF | IronPDF |
|---|---|---|
| 開始価格 | $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操作機能 (マージ、分割、透かし)
- デジタル署名とセキュリティ機能
Close()不要)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ドキュメント.を参照してください。