C#でSelectPdfからIronPDFに移行する方法
SelectPdfからIronPdfへの移行:完全なC#移行ガイド
SelectPdfからIronPdfに移行することで、PDF生成のワークフローが、時代遅れのレンダリングエンジンを搭載したWindows専用のソリューションから、CSS3とJavaScriptをフルサポートした最新のクロスプラットフォームライブラリに変わります。 このガイドでは、Linux、Docker、Azure Functions、およびSelectPdfがサポートしないその他のクラウドプラットフォームへのデプロイを可能にする、完全でステップバイステップの移行パスを提供します。
なぜSelectPdfからIronPDFへ移行するのか
SelectPdfを理解する
SelectPdfは、C#を使用してHTMLコンテンツをPDFに変換するために設計された商用ライブラリです。 このライブラリは、アプリケーション内にPDF生成機能をシームレスに統合することを必要とする開発者向けに作られています。 SelectPdfの強みはそのシンプルなAPIにあり、PDF生成の初心者にとって魅力的な選択肢となっています。
しかし、潜在的なユーザーは、その重大な制限を認識する必要があります。 クロスプラットフォーム機能を宣伝していますが、SelectPdfはWindows環境でのみ機能します。 これは、Azure FunctionsやDockerのようなコンテナなど、クラウドベースのデプロイソリューションを検討する際に大きな障壁となります。 さらに、無料版はかなり制限されており、積極的な透かしを適用する前に5ページまでしか使用できません。 SelectPdfは、時代遅れのBlinkフォークとWebKitベースのアーキテクチャを利用しているため、CSS Gridや高度なフレックスボックスのような最新のWeb技術との互換性に問題があります。
SelectPdfの重大な制限事項
| 問題 | インパクト | IronPDF ソリューション |
|---|---|---|
| Windowsのみ。 | Linux、Docker、Azure Functionsにはデプロイできません。 | クロスプラットフォームの完全サポート |
| 時代遅れのレンダリングエンジン。 | 最新のCSSではレイアウトが崩れる | 最新のChromium |
| 無料版は5ページまで。 | 5ページ以降の積極的な透かし | 豊富なトライアル |
| .NET10のサポートはありません。 | 将来を見据えた問題 | .NET 10をフルサポート |
| クラウド展開がブロックされました。 | AWS Lambda、Azure Functionsは使用できません。 | クラウドネイティブ |
SelectPdfとIronPdfの比較
| フィーチャー | セレクトPDF | IronPDF |
|---|---|---|
| プラットフォームサポート | Windowsのみ | 完全なクロスプラットフォーム、10以上のディストロ |
| 限定的(時代遅れのブリンク) | フルCSS3、モダンChromium | |
| 最大無料版ページ数 | 5ページ | 柔軟性、制限なし |
| 価格について | 499ドルから | 透明で柔軟な価格設定 |
| .NET 10サポート。 | なし | フルサポート |
| クラウド環境におけるデプロイメント | サポート対象外 | 完全サポート |
| CSSグリッド | 制限的 | フルサポート |
| Flexbox(フレックスボックス | 制限的 | フルサポート |
| CSS変数について | サポートされていません | フルサポート |
| ドッカー。 | サポート対象外 | 公式画像 |
| Azureファンクション | サポート対象外 | フルサポート |
| AWSラムダ | サポート対象外 | フルサポート |
2025年、2026年まで.NET 10とC# 14の採用を計画しているチームにとって、SelectPdfは明確に.NET 10をサポートしていないため、将来的な問題が発生します。 IronPDFは最新のすべての.NETバージョンをフルサポートしています。
始める前に
前提条件
1..NET環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9/10+. 2.NuGetアクセス:NuGetパッケージをインストールする能力。 3.IronPDFライセンス:ironPdf.comからライセンスキーを取得してください。
NuGetパッケージの変更
# Remove SelectPdf
dotnet remove package Select.HtmlToPdf
# Install IronPDF
dotnet add package IronPdf# Remove SelectPdf
dotnet remove package Select.HtmlToPdf
# Install IronPDF
dotnet add package IronPdfライセンス構成
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IRON VB CONVERTER ERROR developers@ironsoftware.com完全な API リファレンス
名前空間の変更
// Before: SelectPdf
using SelectPdf;
// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;// Before: SelectPdf
using SelectPdf;
// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;IRON VB CONVERTER ERROR developers@ironsoftware.comコア API マッピング
| セレクトPDF | IronPDF | ノート |
|---|---|---|
| <コード>HtmlToPdf</コード | <コード>ChromePdfRenderer</コード | コアコンバータクラス |
converter.ConvertHtmlString(html). | renderer.RenderHtmlAsPdf(html). | HTML文字列の変換 |
converter.ConvertUrl(url). | renderer.RenderUrlAsPdf(url)のようにします。 | URL変換 |
doc.Save(パス)を実行します。 | pdf.SaveAs(path)のようにします。 | ファイルに保存 |
| <コード>doc.Close()</コード | 不要 | IronPDFはクリーンアップを行います。 |
コンバーター.オプション.PdfPageSize | renderer.RenderingOptions.PaperSize。 | 用紙サイズ |
コンバーター.オプション.PdfPageOrientation | renderer.RenderingOptions.PaperOrientation。 | オリエンテーション |
コンバーター.オプション.マージントップ | renderer.RenderingOptions.MarginTop。 | トップマージン |
コンバーター.オプション.マージンボトム | renderer.RenderingOptions.MarginBottom。 | 下部の余白 |
converter.Options.MarginLeft<//code>. | renderer.RenderingOptions.MarginLeft。 | 左余白 |
コンバーター.オプション.マージン右 | renderer.RenderingOptions.MarginRight。 | 右マージン |
PdfPageSize.A4 | <コード>PdfPaperSize.A4</コード | A4サイズ |
| <コード>PdfPageOrientation.Portrait</コード | <コード>PdfPaperOrientation.Portrait</コード | ポートレート列挙 |
| <コード>PdfPageOrientation.Landscape</コード | <コード>PdfPaperOrientation.Landscape</コード | ランドスケープ列挙 |
{page_number}<//code> | <コード>{ページ}</コード | ページ番号プレースホルダ |
{total_pages}<//code> | <コード>{総ページ数}</コード | 総ページ数 |
コード移行の例
例1: HTML文字列からPDFへの変換
翻訳前 (SelectPdf):
// 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翻訳後(IronPDF):。
// 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この例は、コアAPIの違いを示しています。 SelectPdfはコンバータークラスとしてHtmlToPdfを使用し、ConvertHtmlString()を呼び出してPdfDocumentを作成し、Save()とClose()で永続化とクリーンアップを行います。
IronPDFはChromePdfRendererとRenderHtmlAsPdf()を使い、SaveAs()で保存されたPdfDocumentを返します。 Close()コールは廃止され、IronPDFが自動的にリソース管理を行います。 包括的な例については、HTML to PDF documentationを参照してください。
例2: URLからPDFへの変換
翻訳前 (SelectPdf):
// 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翻訳後(IronPDF):。
// 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.comSelectPdfのConvertUrl()メソッドはIronPDFのRenderUrlAsPdf()に直接マッピングされます。 重要な違いはレンダリングエンジンです。SelectPdfは時代遅れのBlink/WebKitフォークを使用しており、最新のCSSと格闘していますが、IronPDFは最新の安定したChromiumを使用しており、CSS3とJavaScriptを完全にサポートしています。 詳しくは、チュートリアルをご覧ください。
例3: カスタムページの設定と余白
翻訳前 (SelectPdf):
// 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翻訳後(IronPDF):。
// 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ページ設定のパターンはほぼ同じで、プロパティ名が変更されています: -コンバーター.オプション.PdfPageSize→ renderer.RenderingOptions.PaperSize. -コンバーター.オプション.PdfPageOrientation→ renderer.RenderingOptions.PaperOrientation. -PdfPageSize.A4→<コード>PdfPaperSize.A4</コードです。 -<コード>PdfPageOrientation.Portrait</コード→<コード>PdfPaperOrientation.Portrait</コードです。
マージンプロパティは、同じ名前と単位を維持します。
Windowsだけの問題
SelectPdfのプラットフォームの制限
マーケティング上の主張にもかかわらず、SelectPdfは明確にサポートしていません:
- Linux(ディストリビューションを問わず)
- macOS
- Dockerコンテナ
- Azure Functions
- AWSラムダ
- Google クラウド機能
- ARMベースのシステム
SelectPdfはWindows固有のライブラリに依存しているため、移植はできません。
プラットフォーム サポートの比較
| プラットフォーム | セレクト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 | ❌ | ✅ |
時代遅れのレンダリングエンジン
CSS機能サポートの比較
SelectPdfは時代遅れのBlink/WebKitフォークを使用しており、最新のWeb標準に追いついていません:
| CSS機能 | セレクトPDF | IronPDF |
|---|---|---|
| CSSグリッド | ⚠️ 一部/破損 | フル |
| フレックスボックス(基本) | ✅ | ✅ |
| Flexbox(ギャッププロパティ) | ❌ | ✅ |
| CSS変数 | ❌ | ✅ |
| CSS calc() | ⚠️ 有限会社 | ✅ |
| メディアプリント | ⚠️ 有限会社 | ✅ |
| フォントフェイス | ⚠️ 有限会社 | ✅ |
| ウェブフォント | ⚠️ 有限会社 | ✅ |
| SVG | ⚠️ 基本 | フル |
| CSSトランスフォーム | ⚠️ 有限会社 | ✅ |
| CSSアニメーション | ❌ | ✅ |
移行後の新機能
IronPDFに移行すると、SelectPdfでは提供できない機能が得られます:
クロスプラットフォームデプロイメント
// ✅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最新の 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.comClose()は必要ありません。
IronPDFはリソース管理を自動的に行います:
// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed
// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
pdf.SaveAs("output.pdf");
}// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed
// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
pdf.SaveAs("output.pdf");
}IRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [コードベース内のすべてのSelectPdfの使用状況の監査
- [ ] マッピングのための現在のコンバータオプションを文書化する
- [ヘッダー/フッターの実装を特定する
- [ ] ページ番号のプレースホルダの構文をチェック (
{page_number}→{page}) - [基本的なURLの取り扱いパターンに注意してください。
- [ターゲット・デプロイ・プラットフォームの確認
- [ironpdf.comからIronPDFライセンスキーを入手してください。
コードの更新
- [ ]
Select.HtmlToPdfNuGetパッケージを削除する。 - [ ]
IronPdfNuGetパッケージをインストールしてください。 - [ ] 名前空間のインポートを更新する (
using SelectPdf;→using IronPdf;) - [ ]
HtmlToPdfをChromePdfRendererに置き換えてください。 - [ ]
ConvertHtmlString()をRenderHtmlAsPdf()に置き換えてください。 - [ ]
ConvertUrl()をRenderUrlAsPdf()に置き換えてください。 - [ ] オプションのプロパティ名を更新 (
Options.PdfPageSize→RenderingOptions.PaperSize) - [ ]
PdfPageSizeをPdfPaperSizeに変換してください。 - [ ]
PdfPageOrientationをPdfPaperOrientationに変換してください。 - [ ]
doc.Save()をpdf.SaveAs()に置き換えてください。 - [ ] すべての
doc.Close()呼び出しを削除する。 - [ ] ページ番号のプレースホルダを修正 (
{page_number}→{page},{total_pages}<//code>→{total-pages}) - [アプリケーション起動時のライセンス初期化機能の追加
移行後
- [すべての単体テストの実行
- [CSS レンダリングの検証(特に Grid/Flexbox)
- [JavaScriptの実行テスト
- [ヘッダー/フッターページ番号の確認
- [ターゲットプラットフォーム(Linux、Dockerなど)でテストしてください。)
- [パフォーマンステスト
- [PDF出力品質の比較
- [CI/CD パイプラインの更新
- [クラウドデプロイメントのテスト(該当する場合)
結論
SelectPdfは、わかりやすいAPIを備えた強力なHTMLからPDFへの変換ライブラリですが、プラットフォームの柔軟性や時代遅れのWeb標準サポートに制限があるため、開発者は敬遠するかもしれません。 このライブラリは、クロスプラットフォームであることを売りにしていますが、Linux、macOS、Docker、Azure Functionsをサポートしていません。 無料版は、積極的な透かしが入る前に5ページまでという厳しい制限があり、その時代遅れのChromiumフォークは、Gridや高度なFlexboxレイアウトのような最新のCSS機能と格闘しています。
この移行における主な変更点は以下のとおりです: 1.プラットフォームサポート:Windowsのみ → 完全なクロスプラットフォーム(10以上のLinuxディストロ、Docker、クラウド) 2.レンダリングエンジン:古い Blink/WebKit → 最新の安定した Chromium 3.CSSサポート:限定的なグリッド/フレックスボックス → 完全な CSS3 サポート 4..NETサポート: .NET 10なし → .NET 10フルサポート 5.コンバータクラス:HtmlToPdf →<コード>ChromePdfRenderer</コードです。 6.HTML変換:ConvertHtmlString() → RenderHtmlAsPdf(). 7.URL変換:ConvertUrl() → RenderUrlAsPdf(). 8.保存メソッド:doc.Save() → pdf.SaveAs(). 9.クリーンアップ:doc.Close()必須 → 不要(自動) 10.ページサイズ:PdfPageSize.A4 → PdfPaperSize.A4. 11.オリエンテーション:PdfPageOrientation → PdfPaperOrientation です。 12.ページ番号:{page_number} → {page},{total_pages}<//code>→<コード>{総ページ数}</コードです。
堅牢で最新のクロスプラットフォームソリューションを求める開発者は、特に最新のウェブ標準とデプロイ環境を幅広くサポートしているIronPdfに傾倒する可能性が高いです。
IronPDFドキュメント、チュートリアル、APIリファレンスをご覧いただき、SelectPdfへの移行を促進してください。






