フッターコンテンツにスキップ
移行ガイド

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の比較

フィーチャーセレクトPDFIronPDF
プラットフォームサポート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
SHELL

ライセンス構成

// 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
$vbLabelText   $csharpLabel

完全な 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
$vbLabelText   $csharpLabel

コア API マッピング

セレクトPDFIronPDFノート
<コード>HtmlToPdf</コード<コード>ChromePdfRenderer</コードコアコンバータクラス
converter.ConvertHtmlString(html).renderer.RenderHtmlAsPdf(html).HTML文字列の変換
converter.ConvertUrl(url).renderer.RenderUrlAsPdf(url)のようにします。URL変換
doc.Save(パス)を実行します。pdf.SaveAs(path)のようにします。ファイルに保存
<コード>doc.Close()</コード不要IronPDFはクリーンアップを行います。
コンバーター.オプション.PdfPageSizerenderer.RenderingOptions.PaperSize用紙サイズ
コンバーター.オプション.PdfPageOrientationrenderer.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
$vbLabelText   $csharpLabel

翻訳後(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
$vbLabelText   $csharpLabel

この例は、コアAPIの違いを示しています。 SelectPdfはコンバータークラスとしてHtmlToPdfを使用し、ConvertHtmlString()を呼び出してPdfDocumentを作成し、Save()Close()で永続化とクリーンアップを行います。

IronPDFはChromePdfRendererRenderHtmlAsPdf()を使い、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
$vbLabelText   $csharpLabel

翻訳後(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.com
$vbLabelText   $csharpLabel

SelectPdfの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
$vbLabelText   $csharpLabel

翻訳後(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
$vbLabelText   $csharpLabel

ページ設定のパターンはほぼ同じで、プロパティ名が変更されています: -コンバーター.オプション.PdfPageSizerenderer.RenderingOptions.PaperSize. -コンバーター.オプション.PdfPageOrientationrenderer.RenderingOptions.PaperOrientation. -PdfPageSize.A4→<コード>PdfPaperSize.A4</コードです。 -<コード>PdfPageOrientation.Portrait</コード→<コード>PdfPaperOrientation.Portrait</コードです。

マージンプロパティは、同じ名前と単位を維持します。


Windowsだけの問題

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

マーケティング上の主張にもかかわらず、SelectPdfは明確にサポートしていません

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

SelectPdfはWindows固有のライブラリに依存しているため、移植はできません。

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

プラットフォームセレクト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

時代遅れのレンダリングエンジン

CSS機能サポートの比較

SelectPdfは時代遅れのBlink/WebKitフォークを使用しており、最新のWeb標準に追いついていません:

CSS機能セレクトPDFIronPDF
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
$vbLabelText   $csharpLabel

最新の 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

Close()は必要ありません。

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
$vbLabelText   $csharpLabel

移行チェックリスト

移行前

  • [コードベース内のすべてのSelectPdfの使用状況の監査
  • [ ] マッピングのための現在のコンバータオプションを文書化する
  • [ヘッダー/フッターの実装を特定する
  • [ ] ページ番号のプレースホルダの構文をチェック ({page_number}{page})
  • [基本的なURLの取り扱いパターンに注意してください。
  • [ターゲット・デプロイ・プラットフォームの確認
  • [ironpdf.comからIronPDFライセンスキーを入手してください。

コードの更新

  • [ ] Select.HtmlToPdfNuGetパッケージを削除する。
  • [ ] IronPdf NuGetパッケージをインストールしてください。
  • [ ] 名前空間のインポートを更新する (using SelectPdf;using IronPdf;)
  • [ ] HtmlToPdfChromePdfRendererに置き換えてください。
  • [ ] ConvertHtmlString()RenderHtmlAsPdf()に置き換えてください。
  • [ ] ConvertUrl()RenderUrlAsPdf()に置き換えてください。
  • [ ] オプションのプロパティ名を更新 (Options.PdfPageSizeRenderingOptions.PaperSize)
  • [ ] PdfPageSizePdfPaperSizeに変換してください。
  • [ ] PdfPageOrientationPdfPaperOrientationに変換してください。
  • [ ] 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.A4PdfPaperSize.A4. 11.オリエンテーションPdfPageOrientationPdfPaperOrientation です。 12.ページ番号{page_number}{page},{total_pages}<//code>→<コード>{総ページ数}</コードです。

堅牢で最新のクロスプラットフォームソリューションを求める開発者は、特に最新のウェブ標準とデプロイ環境を幅広くサポートしているIronPdfに傾倒する可能性が高いです。

IronPDFドキュメントチュートリアルAPIリファレンスをご覧いただき、SelectPdfへの移行を促進してください。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。