移行ガイド C#でWebView2からIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る WebView2は、Microsoftの埋め込み可能なEdge/Chromiumブラウザコントロールで、Windowsアプリケーション内にWebコンテンツを表示する方法を開発者に提供します。 しかし、開発チームがPDF生成にWebView2を使用しようとすると、本番環境には適さない深刻なアーキテクチャ上の制限に遭遇します。 WebView2は、UIアプリケーション用に設計されたブラウザ埋め込みコントロールであり、PDF生成ライブラリではありません。 このガイドでは、アプリケーションで信頼性の高いPDF生成を必要とする.NET開発者のために、WebView2からIronPDFへの完全な移行経路を、ステップバイステップの手順、コード比較、実用的な例とともに提供します。 重大な警告です:WebView2はPDF生成には適していません 移行経路を検討する前に、開発チームはなぜWebView2をPDF作成に使用すると重大な問題が発生するのかを理解する必要があります: 課題 インパクト 重要度 メモリリーク WebView2には、長時間実行されるプロセスにおけるメモリリークがあることが十分に文書化されています。 サーバーがクラッシュします。 重要 Windowsのみ。 Linux、macOS、Docker、クラウド環境のサポートはありません。 重要 UIスレッドが必要です。 メッセージポンプを使用したSTAスレッドで実行する必要があります。ウェブサーバーやAPIでは動作しません。 重要 PDF用にデザインされていません。 PrintToPdfAsyncは後付けであり、コア機能ではありません。 高 不安定なサービス Windowsサービスとバックグラウンドワーカーでよくあるクラッシュとハングアップ 高 複雑な非同期フロー ナビゲーションイベント、完了コールバック、レースコンディション 高 エッジランタイム依存関係 対象マシンにEdgeWebView2Runtimeがインストールされている必要があります。 中級 ヘッドレスモードはありません。 非表示でも常にUI要素を作成 中級 パフォーマンス 起動が遅く、リソースの消費が激しい 中級 プロのサポートはありません。 Microsoft は PDF 生成をサポートしていません。 中級 現実世界の失敗シナリオ これらのコードパターンは、生産上の障害を引き起こします: // DANGER: This code WILL cause problems in production //課題1: Memory leak - creates newWebView2for each PDF public async Task<byte[]> GeneratePdf(string html) // Called 1000x/day = server crash { using var webView = new WebView2(); // Memory not fully released! await webView.EnsureCoreWebView2Async(); webView.CoreWebView2.NavigateToString(html); // ... memory accumulates until OOM } //課題2: UI thread requirement - crashes in ASP.NET public IActionResult GenerateReport() // FAILS - no STA thread { var webView = new WebView2(); // InvalidOperationException } //課題3: Windows Service instability public class PdfService : BackgroundService // Random crashes { protected override async Task ExecuteAsync(CancellationToken token) { //WebView2+ no message pump = hangs, crashes, undefined behavior } } // DANGER: This code WILL cause problems in production //課題1: Memory leak - creates newWebView2for each PDF public async Task<byte[]> GeneratePdf(string html) // Called 1000x/day = server crash { using var webView = new WebView2(); // Memory not fully released! await webView.EnsureCoreWebView2Async(); webView.CoreWebView2.NavigateToString(html); // ... memory accumulates until OOM } //課題2: UI thread requirement - crashes in ASP.NET public IActionResult GenerateReport() // FAILS - no STA thread { var webView = new WebView2(); // InvalidOperationException } //課題3: Windows Service instability public class PdfService : BackgroundService // Random crashes { protected override async Task ExecuteAsync(CancellationToken token) { //WebView2+ no message pump = hangs, crashes, undefined behavior } } $vbLabelText $csharpLabel IronPDFとWebView2の比較: 機能の比較 アーキテクチャの違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます: アスペクト WebView2 IronPDF 目的 ブラウザコントロール(UI) PDFライブラリ(PDF用に設計) プロダクションレディ NO はい メモリ管理 長期にわたる 安定した適切な処理 プラットフォームサポート Windowsのみ Windows、Linux、macOS、Docker スレッドの要件 STA + メッセージポンプ スレッド サーバー/クラウド サポートされていません フルサポート Azure/AWS/GCP(アジュール/AWS/GCP 問題点 完璧な翻訳 ドッカー。 不可 利用可能な公式画像 .NETコア。 不可 一流のサポート バックグラウンドサービス 不安定 安定性 サポートされるコンテキスト WinForms/WPFのみ あらゆる.NETコンテキスト:コンソール、ウェブ、デスクトップ HTMLからPDFへ 基本 フル URLからPDFへ。 基本 フル ヘッダー/フッター NO はい(HTML) ウォーターマーク。 NO はい PDFをマージする。 NO はい PDFを分割する。 NO はい デジタル署名。 NO はい パスワード保護 NO はい PDF/Aコンプライアンス NO はい プロフェッショナルサポート PDFはありません はい ドキュメント 制限的 広範囲 クイックスタートWebView2からIronPdfへの移行 これらの基本的なステップを踏めば、すぐにでも移行を開始できます。 ステップ 1:WebView2パッケージの削除 dotnet remove package Microsoft.Web.WebView2 dotnet remove package Microsoft.Web.WebView2 SHELL または、プロジェクトファイルから削除してください: <PackageReference Include="Microsoft.Web.WebView2" Version="*" Remove /> <PackageReference Include="Microsoft.Web.WebView2" Version="*" Remove /> XML ステップ2: IronPDFをインストールする dotnet add package IronPdf dotnet add package IronPdf SHELL ステップ 3: 名前空間の更新 WebView2の名前空間をIronPdfの名前空間に置き換えてください: // Before (WebView2) using Microsoft.Web.WebView2.Core; using Microsoft.Web.WebView2.WinForms; // After (IronPDF) using IronPdf; // Before (WebView2) using Microsoft.Web.WebView2.Core; using Microsoft.Web.WebView2.WinForms; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel ステップ 4: ライセンスの初期化 アプリケーション起動時のライセンス初期化を追加します: IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel コード移行の例 HTML を PDF に変換する 最も基本的な操作は、これらの.NET PDFアプローチの複雑さの違いを明らかにします。 WebView2のアプローチ: // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using Microsoft.Web.WebView2.WinForms; using Microsoft.Web.WebView2.Core; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); webView.CoreWebView2.NavigateToString("<html><body><h1>Hello World</h1></body></html>"); await Task.Delay(2000); await webView.CoreWebView2.CallDevToolsProtocolMethodAsync( "Page.printToPDF", "{}" ); } } // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using Microsoft.Web.WebView2.WinForms; using Microsoft.Web.WebView2.Core; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); webView.CoreWebView2.NavigateToString("<html><body><h1>Hello World</h1></body></html>"); await Task.Delay(2000); await webView.CoreWebView2.CallDevToolsProtocolMethodAsync( "Page.printToPDF", "{}" ); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>"); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>"); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel WebView2バージョンは、EnsureCoreWebView2Async()による非同期初期化、NavigateToString()によるナビゲーション、レンダリングを待つための信頼性の低いTask.Delay(2000)、およびDevToolsプロトコルとのインタラクションを必要とします。 IronPDFはこのセレモニーを完全に排除します-レンダラーを作成し、HTMLをレンダリングし、保存します。 高度なHTMLからPDFへのシナリオについては、HTMLからPDFへの変換ガイドをご覧ください。 URLをPDFに変換する URLからPDFへの変換は、WebView2の複雑な非同期ナビゲーションフローを示しています。 WebView2のアプローチ: // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using Microsoft.Web.WebView2.WinForms; using Microsoft.Web.WebView2.Core; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); var tcs = new TaskCompletionSource<bool>(); webView.CoreWebView2.NavigationCompleted += (s, e) => tcs.SetResult(true); webView.CoreWebView2.Navigate("https://example.com"); await tcs.Task; await Task.Delay(1000); var result = await webView.CoreWebView2.CallDevToolsProtocolMethodAsync( "Page.printToPDF", "{\"printBackground\": true}" ); var base64 = System.Text.Json.JsonDocument.Parse(result).RootElement.GetProperty("data").GetString(); File.WriteAllBytes("output.pdf", Convert.FromBase64String(base64)); } } // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using Microsoft.Web.WebView2.WinForms; using Microsoft.Web.WebView2.Core; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); var tcs = new TaskCompletionSource<bool>(); webView.CoreWebView2.NavigationCompleted += (s, e) => tcs.SetResult(true); webView.CoreWebView2.Navigate("https://example.com"); await tcs.Task; await Task.Delay(1000); var result = await webView.CoreWebView2.CallDevToolsProtocolMethodAsync( "Page.printToPDF", "{\"printBackground\": true}" ); var base64 = System.Text.Json.JsonDocument.Parse(result).RootElement.GetProperty("data").GetString(); File.WriteAllBytes("output.pdf", Convert.FromBase64String(base64)); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://example.com"); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://example.com"); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel WebView2 では、TaskCompletionSource を作成し、NavigationCompleted イベントを購読し、CallDevToolsProtocolMethodAsync を呼び出し、JSON レスポンスを解析し、base64 データをデコードする必要があります。 IronPDFはすべての複雑さを内部で処理する専用のRenderUrlAsPdfメソッドを提供します。 認証とカスタムヘッダーオプションについては、URL to PDF documentationを参照してください。 HTMLファイルからのカスタムPDF設定 ページの向き、余白、用紙サイズの設定には、さまざまなアプローチが必要です。 WebView2のアプローチ: // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using Microsoft.Web.WebView2.Core; using Microsoft.Web.WebView2.WinForms; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); string htmlFile = Path.Combine(Directory.GetCurrentDirectory(), "input.html"); webView.CoreWebView2.Navigate(htmlFile); await Task.Delay(3000); var printSettings = webView.CoreWebView2.Environment.CreatePrintSettings(); printSettings.Orientation = CoreWebView2PrintOrientation.Landscape; printSettings.MarginTop = 0.5; printSettings.MarginBottom = 0.5; using (var stream = await webView.CoreWebView2.PrintToPdfAsync("custom.pdf", printSettings)) { Console.WriteLine("Custom PDF created"); } } } // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using Microsoft.Web.WebView2.Core; using Microsoft.Web.WebView2.WinForms; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); string htmlFile = Path.Combine(Directory.GetCurrentDirectory(), "input.html"); webView.CoreWebView2.Navigate(htmlFile); await Task.Delay(3000); var printSettings = webView.CoreWebView2.Environment.CreatePrintSettings(); printSettings.Orientation = CoreWebView2PrintOrientation.Landscape; printSettings.MarginTop = 0.5; printSettings.MarginBottom = 0.5; using (var stream = await webView.CoreWebView2.PrintToPdfAsync("custom.pdf", printSettings)) { Console.WriteLine("Custom PDF created"); } } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; using System; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape; renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; string htmlFile = Path.Combine(Directory.GetCurrentDirectory(), "input.html"); var pdf = renderer.RenderHtmlFileAsPdf(htmlFile); pdf.SaveAs("custom.pdf"); Console.WriteLine("Custom PDF created"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; using System; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape; renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; string htmlFile = Path.Combine(Directory.GetCurrentDirectory(), "input.html"); var pdf = renderer.RenderHtmlFileAsPdf(htmlFile); pdf.SaveAs("custom.pdf"); Console.WriteLine("Custom PDF created"); } } $vbLabelText $csharpLabel WebView2では、3秒間のTask.Delay(信頼できない推測です)、環境による印刷設定の作成、ストリームによるPrintToPdfAsyncの使用が必要です。 IronPdfはRenderingOptionsプロパティを明確な名前で直接提供し、より正確な測定のためにミリメートルを使用します。 DevToolsプロトコルによる高度なPDFオプション 複雑なWebView2の設定には、DevToolsプロトコルの対話が必要です。 WebView2のアプローチ: // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using System.Text.Json; using Microsoft.Web.WebView2.WinForms; using Microsoft.Web.WebView2.Core; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); var htmlPath = Path.GetFullPath("document.html"); var tcs = new TaskCompletionSource<bool>(); webView.CoreWebView2.NavigationCompleted += (s, e) => tcs.SetResult(true); webView.CoreWebView2.Navigate($"file:///{htmlPath}"); await tcs.Task; await Task.Delay(1000); var options = new { landscape = false, printBackground = true, paperWidth = 8.5, paperHeight = 11, marginTop = 0.4, marginBottom = 0.4, marginLeft = 0.4, marginRight = 0.4 }; var result = await webView.CoreWebView2.CallDevToolsProtocolMethodAsync( "Page.printToPDF", JsonSerializer.Serialize(options) ); var base64 = JsonDocument.Parse(result).RootElement.GetProperty("data").GetString(); File.WriteAllBytes("output.pdf", Convert.FromBase64String(base64)); } } // NuGet: Install-Package Microsoft.Web.WebView2.WinForms using System; using System.IO; using System.Threading.Tasks; using System.Text.Json; using Microsoft.Web.WebView2.WinForms; using Microsoft.Web.WebView2.Core; class Program { static async Task Main() { var webView = new WebView2(); await webView.EnsureCoreWebView2Async(); var htmlPath = Path.GetFullPath("document.html"); var tcs = new TaskCompletionSource<bool>(); webView.CoreWebView2.NavigationCompleted += (s, e) => tcs.SetResult(true); webView.CoreWebView2.Navigate($"file:///{htmlPath}"); await tcs.Task; await Task.Delay(1000); var options = new { landscape = false, printBackground = true, paperWidth = 8.5, paperHeight = 11, marginTop = 0.4, marginBottom = 0.4, marginLeft = 0.4, marginRight = 0.4 }; var result = await webView.CoreWebView2.CallDevToolsProtocolMethodAsync( "Page.printToPDF", JsonSerializer.Serialize(options) ); var base64 = JsonDocument.Parse(result).RootElement.GetProperty("data").GetString(); File.WriteAllBytes("output.pdf", Convert.FromBase64String(base64)); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter; renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginBottom = 40; renderer.RenderingOptions.MarginLeft = 40; renderer.RenderingOptions.MarginRight = 40; renderer.RenderingOptions.PrintHtmlBackgrounds = true; var pdf = renderer.RenderHtmlFileAsPdf("document.html"); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter; renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginBottom = 40; renderer.RenderingOptions.MarginLeft = 40; renderer.RenderingOptions.MarginRight = 40; renderer.RenderingOptions.PrintHtmlBackgrounds = true; var pdf = renderer.RenderHtmlFileAsPdf("document.html"); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel WebView2は無名オブジェクトの構築、JSONへのシリアライズ、DevTools Protocolメソッドの呼び出し、JSONレスポンスの解析、手動によるbase64のデコードを必要とします。IronPDFは明確な名前とPdfPaperSize.Letterのような列挙値を持つ型付きプロパティを提供します。 WebView2APIからIronPDFへのマッピングリファレンス このマッピングは、APIと同等のものを直接示すことで、移行を加速します: WebView2 API IronPDF 同等物 ノート new WebView2(). new ChromePdfRenderer(). UIコントロール不要 EnsureCoreWebView2Async()を使用してください。 該当なし 初期化不要 NavigateToString(html)と PrintToPdfAsync()です。 RenderHtmlAsPdf(html)を使用してください。 単一メソッド呼び出し Navigate(url) + PrintToPdfAsync(). RenderUrlAsPdf(url)を使用してください。 単一メソッド呼び出し PrintSettings.PageWidthを使用してください。 RenderingOptions.PaperSize PdfPaperSize列挙型を使用する PrintSettings.PageHeight(プリント設定.ページ高さ RenderingOptions.PaperSize PdfPaperSize列挙型を使用する PrintSettings.MarginTop。 RenderingOptions.MarginTop。 単位はインチではなくmm PrintSettings.Orientation RenderingOptions.PaperOrientation ポートレート/風景 ExecuteScriptAsync()を使用してください。 HTMLのJavaScript または、WaitForオプションを使用してください。 AddScriptToExecuteOnDocumentCreatedAsync(). HTML <script>タグ JSフルサポート ナビゲーションイベント WaitFor.JavaScript() クリーンな待機メカニズム CallDevToolsProtocolMethodAsync("Page.printToPDF")。 RenderHtmlAsPdf() 直接レンダリング 一般的な移行の問題と解決策 課題1: メモリ リーク WebView2の問題: WebView2インスタンスを破棄するときにメモリが完全に解放されません。 長時間稼働するプロセスは、クラッシュするまでメモリを蓄積します。 IronPDFソリューション:漏れのない適切なガベージコレクション: //IronPDF- clean memory management using (var pdf = renderer.RenderHtmlAsPdf(html)) { pdf.SaveAs("output.pdf"); } // Properly disposed //IronPDF- clean memory management using (var pdf = renderer.RenderHtmlAsPdf(html)) { pdf.SaveAs("output.pdf"); } // Properly disposed $vbLabelText $csharpLabel 課題2:ウェブアプリにUIスレッドがない WebView2の問題 メッセージポンプを備えたSTAスレッドが必要です。.NET Core コントローラーはWebView2インスタンスを作成できません。 IronPDFソリューション:どのスレッドでも動作します: // ASP.NET Core - just works public async Task<IActionResult> GetPdf() { var pdf = await renderer.RenderHtmlAsPdfAsync(html); return File(pdf.BinaryData, "application/pdf"); } // ASP.NET Core - just works public async Task<IActionResult> GetPdf() { var pdf = await renderer.RenderHtmlAsPdfAsync(html); return File(pdf.BinaryData, "application/pdf"); } $vbLabelText $csharpLabel 課題3:ナビゲーションイベントの複雑さ WebView2の問題: TaskCompletionSourceで、非同期のナビゲーション イベント、完了コールバック、およびレース条件を処理しなければなりません。 IronPDFソリューション: 同期または非同期の単一メソッド呼び出し: // Simple and predictable var pdf = renderer.RenderHtmlAsPdf(html); // or var pdf = await renderer.RenderHtmlAsPdfAsync(html); // Simple and predictable var pdf = renderer.RenderHtmlAsPdf(html); // or var pdf = await renderer.RenderHtmlAsPdfAsync(html); $vbLabelText $csharpLabel 課題4:測定単位 WebView2は寸法にインチを使用しています(レターは8.5 x 11)。 IronPDFは、より正確な測定のためにミリメートルを使用しています。 変換アプローチ:。 // WebView2: PageWidth = 8.27 (inches for A4) // IronPDF: Use enum renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; // Or custom size in mm renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(210, 297); // WebView2: PageWidth = 8.27 (inches for A4) // IronPDF: Use enum renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; // Or custom size in mm renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(210, 297); $vbLabelText $csharpLabel WebView2移行のチェックリスト マイグレーション前のタスク コードベース内のすべてのWebView2PDF 生成コードを文書化します。WebView2が問題(メモリリーク、クラッシュ、デプロイの問題)を引き起こしている箇所を特定すること。 IronPDFのドキュメントを見て、機能を理解してください。 コード更新タスク 1.Microsoft.Web.WebView2 NuGet パッケージの削除 2.IronPdf NuGetパッケージをインストールする 3.PDF生成にのみ使用する場合は、WinForms/WPFの依存関係を削除してください。 4.WebView2のコードをChromePdfRendererに置き換えてください。 5.STAスレッド要件の削除 6.ナビゲーション イベント ハンドラと TaskCompletionSource パターンを削除する。 7.Task.Delay ハックの削除 8.起動時にIronPDFライセンスの初期化を追加する 移行後のテスト 移行後、これらの点を検証してください: ターゲット環境でのテスト(ASP.NET、Docker、該当する場合はLinux) PDF出力の品質が期待値に合っていることを確認 JavaScriptを多用したページが正しくレンダリングされることをテストする ヘッダーとフッターがIronPDFのHTML機能で動作することを確認する。 長時間の動作におけるメモリの安定性に関する負荷テスト メモリの蓄積なしに長時間実行するシナリオをテストする デプロイメントの更新 該当する場合は、Dockerイメージを更新してください(EdgeWebView2Runtimeを削除してください)。 サーバー要件からEdgeWebView2Runtimeの依存関係を削除する サーバー要件ドキュメントの更新 クロスプラットフォーム展開がターゲットプラットフォームで動作することを確認する。 IronPDFに移行する主な利点 WebView2からIronPdfに移行することで、いくつかの重要な利点が得られます: クロスプラットフォーム サポート:WebView2の Windows のみの制限とは異なり、IronPDF は Windows、Linux、macOS、Docker で機能します。 この柔軟性により、Azure、AWS、GCP、およびプラットフォームの制約を受けないあらゆるクラウド環境への展開が可能になります。 UI 依存関係なし:IronPDFは、STA スレッド、メッセージ ポンプ、または WinForms/WPF コンテキストを必要としません。 コンソールアプリケーション、Web API、Windowsサービス、バックグラウンドワーカーで動作します。 メモリの安定性:適切なガベージ コレクションにより、長時間実行されるプロセスでWebView2に発生するメモリ リークが解消されます。 プロダクションサーバーは安定したままです。 シンプルな API:複雑なナビゲーション イベント、完了コールバック、DevTools プロトコルのインタラクション、および base64 デコードが、単一のメソッド呼び出しに置き換えられます。 拡張 PDF 機能:ヘッダー、フッター、透かし、結合/分割、デジタル署名、パスワード保護、PDF/A 準拠など、WebView2 では提供できない機能。 積極的な開発: .NET 10 と C# 14 の採用が 2026 年まで増加するにつれて、IronPDF の定期的な更新により、現在のおよび将来の .NET バージョンとの互換性が確保されます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む 公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む C#でWinnovativeからIronPDFに移行する方法C#でVectSharpからIronPDFに移...
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む