.NET C# でページの方向と回転を設定する方法 | IronPDF
SelectPdfからIronPDFへの移行は、PDF生成ワークフローをWindowsのみに依存するライブラリから、最新のChromiumを使用し、全CSS3およびJavaScriptに対応したクロスプラットフォームのライブラリに移行します。 このガイドは、SelectPdfではサポートされていないLinux、Docker、Azure Functions、その他のクラウドプラットフォームへのデプロイを可能にする完全なステップバイステップの移行パスを提供します。
なぜSelectPdfからIronPDFへ移行するのか
SelectPdfを理解する
SelectPdfは、C#を使用してHTMLコンテンツをPDFに変換するために設計された商用ライブラリです。 このライブラリは、アプリケーション内にPDF生成機能をシームレスに統合することを必要とする開発者向けに作られています。 SelectPdfの強みはそのシンプルなAPIにあり、PDF生成の初心者にとって魅力的な選択肢となっています。
しかし、潜在的なユーザーは、その重大な制限を認識する必要があります。 ベンダー自身のドキュメントによると、SelectPdfはWindowsでのみ動作し、LinuxやmacOS、Xamarinでは動作しません。 これは、Linux Azure FunctionsやDockerなどのクラウドベースのデプロイメントソリューションを検討する際に大きな障害となります。 Community Editionは1PDFあたり5ページに制限され、ライセンスキーを購入するまで全ページに透かしが入ります。 SelectPdfのデフォルトのレンダリングエンジンは内部WebKitです; オプションのBlinkエンジンは2024年4月のChromium 124に同梱されており、最新のChromeより遅れているため、CSS GridやFlexbox gap プロパティなどの新しいCSS機能に問題を引き起こすことがあります。
SelectPdfの重大な制限事項
| 問題 | インパクト | IronPDF ソリューション |
|---|---|---|
| Windowsのみ。 | Linux、Docker、Azure Functionsにはデプロイできません。 | クロスプラットフォームの完全サポート |
| デフォルトのWebKitエンジン;オプショナルのBlinkエンジンはChromium 124(2024年4月)と共に提供 | 新しいCSS機能はデフォルトのエンジンで失敗する可能性があります | 最新のChromium |
| 無料版は5ページまで。 | ライセンスが購入されるまで全ページに透かしが入ります | 豊富なトライアル |
| .NET 10はWindowsのみ対応 | Linux/macOS/コンテナーデプロイメントなし | すべてのプラットフォームでフル.NET 10対応 |
| クラウドデプロイメントブロック(非Windows) | AWS LambdaまたはLinux Azure Functionsを使用できません | クラウドネイティブ |
SelectPdfとIronPDFの比較
| フィーチャー | セレクトPDF | IronPDF |
|---|---|---|
| プラットフォームサポート | Windowsのみ | 完全なクロスプラットフォーム、10以上のディストロ |
| 最新のWeb標準のサポート | デフォルトはWebKit; オプションのBlinkはChromium 124(2024年4月)です | フルCSS3、最新のChromium |
| 最大無料版ページ数 | 5ページ+ページごとの透かし | 柔軟性、制限なし |
| 価格について | $499 シングル開発者から $1,599 エンタープライズOEM | 透明で柔軟な価格設定 |
| .NET 10サポート。 | はい、ただしWindowsのみ | はい、すべてのプラットフォーム |
| クラウド環境におけるデプロイメント | Windows対象のみ | フルサポート(Windows + Linux) |
| CSSグリッド | WebKit:制限; Blink(Chromium 124):サポート | サポート対象 |
| Flexbox(間隔プロパティ) | WebKit:サポートされていない; Blink:サポート | サポート対象 |
| CSS変数について | WebKit:サポートされていない; Blink:サポート | サポート対象 |
| Docker (Linux) | サポートされていません | 公式画像 |
| Azure Functions (Linux) | サポートされていません | サポート対象 |
| AWSラムダ | サポートされていません | サポート対象 |
SelectPdfのNetCoreパッケージは.NET Standard 2.0を対象とし、.NET 5から.NET 10と互換性があると記載されていますが、Windowsのみで動作するため、Linuxコンテナ、AWS Lambda、またはLinuxベースのAzure Appサービスへデプロイするチームにとっては、その互換性は無効です。IronPDFは同じ.NETバージョンをサポートし、Windows、Linux、macOS、Docker上で動作します。
始める前に
前提条件
- .NET環境: .NET Framework 4.6.1+ または .NET Core 3.1+ / .NET 5/6/7/8/9/10+
- NuGetアクセス: NuGetパッケージをインストールする機能
- IronPDFライセンス: IronPDFからライセンスキーを取得します。
NuGetパッケージの変更
# RemoveセレクトPDF(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore
# Install IronPDF
dotnet add package IronPdf
# RemoveセレクトPDF(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore
# 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";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
完全な 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;
' Before: SelectPdf
Imports SelectPdf
' After: IronPDF
Imports IronPdf
Imports IronPdf.Engines.Chrome
コア API マッピング
| セレクトPDF | IronPDF | ノート |
|---|---|---|
HtmlToPdf |
ChromePdfRenderer |
コアコンバータクラス |
converter.ConvertHtmlString(html) |
renderer.RenderHtmlAsPdf(html) |
HTML文字列の変換 |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
URL変換 |
doc.Save(path) |
pdf.SaveAs(path) |
ファイルに保存 |
doc.Close() |
不要 | IronPDFはクリーンアップを行います。 |
converter.Options.PdfPageSize |
renderer.RenderingOptions.PaperSize |
用紙サイズ |
converter.Options.PdfPageOrientation |
renderer.RenderingOptions.PaperOrientation |
オリエンテーション |
converter.Options.MarginTop |
renderer.RenderingOptions.MarginTop |
トップマージン |
converter.Options.MarginBottom |
renderer.RenderingOptions.MarginBottom |
下部の余白 |
converter.Options.MarginLeft |
renderer.RenderingOptions.MarginLeft |
左余白 |
converter.Options.MarginRight |
renderer.RenderingOptions.MarginRight |
右マージン |
PdfPageSize.A4 |
PdfPaperSize.A4 |
A4サイズ |
PdfPageOrientation.Portrait |
PdfPaperOrientation.Portrait |
ポートレート列挙 |
PdfPageOrientation.Landscape |
PdfPaperOrientation.Landscape |
ランドスケープ列挙 |
{page_number} |
{page} |
ページ番号プレースホルダ |
{total_pages} |
{total-pages} |
総ページ数 |
コード移行の例
例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");
}
}
Imports SelectPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim converter As New HtmlToPdf()
Dim doc As PdfDocument = converter.ConvertHtmlString(htmlContent)
doc.Save("document.pdf")
doc.Close()
Console.WriteLine("PDF generated from HTML string")
End Sub
End Class
翻訳後(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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("document.pdf")
Console.WriteLine("PDF generated from HTML string")
End Sub
End Class
この例は、コアAPIの違いを示しています。 SelectPdfは変換クラスとしてHtmlToPdf を使用し、ConvertHtmlString() を呼び出してPdfDocument を作成し、その後Save() とClose() を使って保存とクリーンアップを行います。
IronPDFはChromePdfRenderer とRenderHtmlAsPdf() を使用し、PdfDocument を返し、それをSaveAs() によって保存します。 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");
}
}
Imports SelectPdf
Imports System
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdf()
Dim doc As PdfDocument = converter.ConvertUrl("https://www.example.com")
doc.Save("output.pdf")
doc.Close()
Console.WriteLine("PDF created successfully")
End Sub
End Class
翻訳後(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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
SelectPdfのConvertUrl() メソッドはIronPDFのRenderUrlAsPdf() と直接対応しています。 重要な違いはレンダリングエンジンです:SelectPdfはデフォルトで内部WebKitを使用し、Chromium 124(2024年4月)がバンドルされたオプショナルなBlinkエンジンを提供しますが、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");
}
}
Imports SelectPdf
Imports System
Module Program
Sub Main()
Dim converter As 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
Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
Dim doc As PdfDocument = converter.ConvertHtmlString(html)
doc.Save("custom-settings.pdf")
doc.Close()
Console.WriteLine("PDF with custom settings created")
End Sub
End Module
翻訳後(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");
}
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System
Module Program
Sub Main()
Dim renderer As 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
Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("custom-settings.pdf")
Console.WriteLine("PDF with custom settings created")
End Sub
End Module
ページ設定のパターンはほぼ同じで、プロパティ名が変更されています:
converter.Options.PdfPageSize→renderer.RenderingOptions.PaperSizeconverter.Options.PdfPageOrientation→renderer.RenderingOptions.PaperOrientationPdfPageSize.A4→PdfPaperSize.A4PdfPageOrientation.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は3つのエンジンを提供しています(ベンダードキュメント):内部のWebKit(デフォルト)、Blink(v19.1で導入され、Chromium 124.0.6367.201—2024年4月公開とバンドル)、およびChromium/CEF。 デフォルトのWebKitエンジンは、最新のウェブ標準に追いついていません:
| CSS機能 | SelectPdf(WebKitデフォルト) | SelectPdf(Blink、Chromium 124) | 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");
Imports IronPdf
' Azure App Service(Linux)- WORKS
' Docker container - WORKS
' AWSラムダ- WORKS
' GitHub Actions on ubuntu-latest - WORKS
' macOS development - WORKS
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>")
pdf.SaveAs("output.pdf")
最新の 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!
Imports IronPdf
' ✅IronPDF- Uses latest stable Chromium
Dim renderer As New ChromePdfRenderer()
Dim html As String = "
<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>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' All modern CSS features render correctly!
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");
}
' Option 1: Let garbage collection handle it
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' No Close() needed
' Option 2: Explicit disposal
Using pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Using
移行チェックリスト
移行前
- コードベース内のすべてのSelectPdfの使用を監査する
- マッピング用の電流コンバータオプションを文書化します
- ヘッダー/フッターの実装を特定する
- ページ番号プレースホルダー構文を確認する (
{page_number}→{page}) - ベースURLの処理パターンに注意してください
- ターゲット展開プラットフォームを確認する
- IronPDFから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}→{total-pages}) - アプリケーションの起動時にライセンスの初期化を追加
移行後
- すべてのユニットテストを実行する
- CSSレンダリング(特にGrid/Flexbox)を検証する
- JavaScriptの実行をテストする
- ヘッダー/フッターのページ番号を確認する
- ターゲット プラットフォーム (Linux、Docker など) でテストする
- パフォーマンステスト
- PDF出力品質の比較
- CI/CDパイプラインを更新する
- クラウド展開をテストする(該当する場合)

