IronPDF ハウツー PDFレンダリングを遅らせるためのWaitForの使用 How to Use the WaitFor Class to Delay C# PDF Rendering Chaknith Bin 更新日:8月 14, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article This article was translated from English: Does it need improvement? Translated View the article in English PDF ドキュメントをレンダリングする際、すべての必要なアセットと JavaScript のアニメーションの読み込みが完了する前にレンダリングプロセスが始まるという一般的な問題が発生します。 これにより、PDF ドキュメントのレンダリングが不完全または不正確になる可能性があります。 最初は、ユーザーに任意の遅延を設定することを許可することで、この問題に対処しました。 しかし、任意の遅延に頼ることは信頼できるまたは効率的なアプローチではありません。 クイックスタート: WaitFor を使用して PDF レンダリングを強化する IronPDF の WaitFor 機能により、開発者は非同期のタイミングを管理することで PDF レンダリングを最適化できます。 RenderDelay などのオプションを設定することで、変換前にすべてのアセットとスクリプトが読み込まれていることを確認し、不完全な PDF ドキュメントを防ぎます。 このガイドでは、プロジェクトで WaitFor を簡単に実装して正確で効率的なレンダリングを行う方法を示します。 Get started making PDFs with NuGet now: Install IronPDF with NuGet Package Manager PM > Install-Package IronPdf Copy and run this code snippet. new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } } .RenderUrlAsPdf("https://example.com") .SaveAs("output.pdf"); Deploy to test on your live environment Start using IronPDF in your project today with a free trial Free 30 day Trial class="hsg-featured-snippet"> 最小ワークフロー (5 ステップ) C# IronPDF ライブラリをダウンロードして PDF レンダリングを遅延させる HTML 文字列、ファイル、またはウェブ URL から PDF ドキュメントを生成する WaitFor の JavaScript メソッドを利用して JavaScript 関数からレンダリングをトリガーする ネットワークアクティビティの数に基づいてレンダリングを遅延させる すべてのフォントが読み込まれるまでおよび特定の HTML 要素を待機する WaitFor クラス より堅牢なソリューションを提供するために、PDF レンダリングプロセスを強化する WaitFor クラスを実装しました。 RenderOptions の WaitFor オブジェクトは、次のような複数のオプションを提供します: PageLoad: 待機なしでデフォルトのレンダリング。 RenderDelay: 任意の待機時間を設定。 Fonts: すべてのフォントが読み込まれるまで待機。 JavaScript: JavaScript 関数でレンダリングをトリガー。 HTML elements: 特定の HTML 要素(要素 ID、名前、タグ名、クエリセレクタなど)をターゲットとする要素を待機。 NetworkIdle: ネットワークがアイドル状態になるのを待機 (0、2、またはカスタム量)。 These features are available for converting HTML strings to PDF with IronPDF, HTML files to PDF with IronPDF, and web URLs to PDF with IronPDF. この新機能の重要な側面を探ってみましょう。 デフォルトの即時レンダーの例 デフォルトでは、ページの読み込みが完了するとすぐにレンダリングプロセスが行われます。 通常にレンダリングしたい場合は、PageLoad メソッドを呼び出す必要はありません。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-pageload.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render as soon as the page is loaded renderer.RenderingOptions.WaitFor.PageLoad(); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel カスタムレンダリング遅延の例 PDF をレンダリングする前に特定の遅延が必要な場合、任意のミリ秒数を遅延として設定できます。 これにより、特定のタイミング要求を満たす柔軟性が提供されます。 このオプションは、古い実装と同様に RenderingOptions.RenderDelay プロパティを使用して機能します。 しかし、古いプロパティは廃止されており、新しい API、RenderingOptions.WaitFor.RenderDelay を使用することを強くお勧めします。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-delay-time.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render after 3000ms renderer.RenderingOptions.WaitFor.RenderDelay(3000); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>"); Imports IronPdf Private renderer As New ChromePdfRenderer() ' Render after 3000ms renderer.RenderingOptions.WaitFor.RenderDelay(3000) Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>") $vbLabelText $csharpLabel すべてのフォントが読み込まれた例 WaitFor クラスの AllFontsLoaded メソッドは、Google Fonts や他のサーバーなどの外部ソースからすべてのフォントが読み込まれるまで PDF レンダリングプロセスを一時停止します。 これにより、最終的な PDF に必要なすべてのフォントが含まれ、ドキュメントの意図したタイポグラフィやビジュアルな外観が保たれます。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-all-fonts.cs using IronPdf; string htmlContent = @" <!DOCTYPE html> <html lang=""en""> <head> <meta charset=""UTF-8""> <title>Test Registration of Extension</title> <!-- for google web fonts --> <link rel=""preconnect"" href=""https://fonts.googleapis.com""> <link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin> <link rel=""stylesheet"" href=""https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"" > <style> /* for remote fonts */ @font-face { font-family: 'CustomFont'; src: url('https://stage.gradfinale.co.uk/tcpdf/fonts/avgr65wttf.ttf'); } p#p1 { font-family: CustomFont, sans-serif; } /* for local fonts */ @font-face { font-family: 'LocalCustomFont'; src: local('Arial'); } p#p3 { font-family: LocalCustomFont, sans-serif; } </style> </head> <body> <h1>This is Delayed Render Test!</h1> <p style=""font-family: Roboto, monospace;"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p> <p id=""p1"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p> <p id=""p3"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p> </body> </html>)"; ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.WaitFor.AllFontsLoaded(10000); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel カスタム JavaScript 実行例 レンダリングプロセスをより細かく制御するために、PDF ドキュメントをレンダリングする前に実行する必要があるカスタム JavaScript 関数を指定することができます。 これにより、レンダリングプロセスの開始前に必要なタスクまたはチェックを実行することが可能です。 これにより、ユーザーはレンダリングのトリガータイミングを制御できます。 JavaScript では、window.ironpdf.notifyRender() 関数を使用してレンダリングタスクをトリガーします。 notifyRender() が呼び出されると、レンダリングプロセスが開始されます。 関数を呼び出すタイミングを完全に制御できます。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-javascript.cs using IronPdf; string html = @"<!DOCTYPE html> <html> <body> <h1>Testing</h1> <script type='text/javascript'> // Set delay setTimeout(function() { window.ironpdf.notifyRender(); }, 1000); </script> </body> </html>"; ChromePdfRenderOptions renderingOptions = new ChromePdfRenderOptions(); // Set rendering to wait for the notifyRender function renderingOptions.WaitFor.JavaScript(5000); PdfDocument pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(html, renderingOptions); JAVASCRIPT HTML 要素の例 このオプションを使用すると、ID、名前、タグ名などの特定の HTML 要素を待機するようにレンダリングプロセスを設定できます。 要素 ID を待機 以下のコード例では、特定の要素 ID を待機します。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-id.cs using IronPdf; string htmlContent = @" <!DOCTYPE html> <html lang=""en""> <head> <meta charset=""UTF-8""> <title>Delayed render tests</title> <script type=""text/javascript""> setTimeout(function() { var h1Tag = document.createElement(""h1""); h1Tag.innerHTML = ""bla bla bla""; h1Tag.setAttribute(""id"", ""myid""); var block = document.querySelector(""div#x""); block.appendChild(h1Tag); }, 1000); </script> </head> <body> <h1>This is Delayed Render Test!</h1> <div id=""x""></div> </body> </html>"; ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 要素名を待機 以下のコード例では、特定の要素名のレンダリングプロセスを待機します。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-name.cs using IronPdf; string htmlContent = @" <!DOCTYPE html> <html lang=""en""> <head> <meta charset=""UTF-8""> <title>Delayed render tests</title> <script type=""text/javascript""> setTimeout(function() { var h1Tag = document.createElement(""h1""); h1Tag.innerHTML = ""bla bla bla""; h1Tag.setAttribute(""name"", ""myName""); var block = document.querySelector(""div#x""); block.appendChild(h1Tag); }, 1000); </script> </head> <body> <h1>This is Delayed Render Test!</h1> <div id=""x""></div> </body> </html>"; ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.WaitFor.HtmlElementByName("myName", 5000); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 要素タグ名を待機 以下のコード例では、特定の要素タグ名のレンダリングプロセスを待機します。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-tag-name.cs using IronPdf; string htmlContent = @" <!DOCTYPE html> <html lang=""en""> <head> <meta charset=""UTF-8""> <title>Delayed render tests</title> <script type=""text/javascript""> setTimeout(function() { var newElem = document.createElement(""h2""); newElem.innerHTML = ""bla bla bla""; var block = document.querySelector(""div#x""); block.appendChild(newElem); }, 1000); </script> </head> <body> <h1>This is Delayed Render Test!</h1> <div id=""x""></div> </body> </html>"; ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.WaitFor.HtmlElementByTagName("h2", 5000); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel クエリセレクタを使用する 以下のコード例では、クエリセレクタで選択された要素を待機します。 HtmlQuerySelector メソッドは、id が 'myid' で クラスが 'blablastyle' の img タグ を待機します。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-query-selector.cs using IronPdf; string htmlContent = @" <!DOCTYPE html> <html lang=""en""> <head> <meta charset=""UTF-8""> <title>Test Registration of Extension</title> <script type=""text/javascript""> setTimeout(function() { var img = document.createElement(""img""); img.onload = function() { img.setAttribute(""id"", ""myid""); img.setAttribute(""class"", ""blablastyle""); var block = document.getElementById(""x""); block.appendChild(img); }; img.src = ""https://www.w3schools.com/images/picture.jpg""; // .src after .onload to ignore cached, if any }, 1000); </script> </head> <body> <h1>This is Delayed Render Test!</h1> <div id=""x""></div> </body> </html>"; ChromePdfRenderer renderer = new ChromePdfRenderer(); renderer.RenderingOptions.WaitFor.HtmlQuerySelector("img#myid.blablastyle", 5000); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel ネットワークアイドルの例 ネットワークアクティビティなし このタイプのネットワークアイドルは、通常コンテンツが完全に読み込まれたことを示すまで待機します。 シングルページアプリケーション (SPA) や長期間のネットワーク要求がないシンプルなウェブページに適しています。 レンダリングプロセスは 少なくとも 500ms の間 継続中の ネットワークアクティビティがない場合にのみ開始されます。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-network-idle-0.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render unless there has been no network activity for at least 500ms renderer.RenderingOptions.WaitFor.NetworkIdle0(); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 2 つのネットワークアクティビティが許可されている NetworkIdle2 メソッドは、長期間のネットワーク要求や定期的なハートビートを持つ Web アプリケーションまたは Web ページに適しています。 通常、1-2 件のリクエストが関与しています。 この場合、たとえこれらの要求が進行中であっても、ネットワークアイドルイベントのトリガーを無効にするとはみなされません。最大で 2 つまでが許可されている レンダリングプロセスを開始する前に、少なくとも二つのネットワークアクティビティが残り、少なくとも 500ms 継続している必要があります。 このオプションは、一定数のネットワークアクティビティを扱うための迅速な構成を提供します。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-network-idle-2.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render unless there are at most 2 network activities for at least 500ms renderer.RenderingOptions.WaitFor.NetworkIdle2(); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel ネットワークアクティビティの許可をカスタマイズする 複数のネットワーク要求が関与するケースでは、ネットワークアイドルの期間 と 許可されるネットワーク 要求の数をカスタマイズして、ネットワークアイドルイベントのトリガーを無効にしないようにすることができます。 このオプションは、前述の 2 つの方法に適合しない特定の要求を持つ Web アプリケーションまたは Web ページに適しています。 このカスタマイズを提供することで、さまざまな状況下で多様なユースケースに対応することを保証します。 :path=/static-assets/pdf/content-code-examples/how-to/waitfor-customize-network.cs using IronPdf; ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render unless there are at most 5 network activities for at least 1000ms renderer.RenderingOptions.WaitFor.NetworkIdle(1000, 5); PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>"); Imports IronPdf Private renderer As New ChromePdfRenderer() ' Render unless there are at most 5 network activities for at least 1000ms renderer.RenderingOptions.WaitFor.NetworkIdle(1000, 5) Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>") $vbLabelText $csharpLabel 最大待機時間の設定 さらに、JavaScript、NetworkIdle、NetworkIdle0、NetworkIdle2 メソッドも、無限待機を防ぐために最大待機時間を設定できます。これには、これらのメソッドの maxWaitTime パラメータを使用できます。 ご注意すべての指定された時間値はミリ秒で考慮されています。 次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: 追加機能 よくある質問 PDFレンダリングライブラリにおけるWaitForクラスとは何ですか? IronPDFのWaitForクラスはPDFレンダリング中の非同期操作のタイミングを管理し、必要なアセットやJavaScriptアニメーションがすべて読み込まれてからドキュメントをレンダリングすることを保証します。 すべてのページアセットが読み込まれるまでPDFレンダリングを遅延させるにはどうすればいいですか? IronPDFでは、WaitForクラスのPageLoad、RenderDelay、またはAllFontsLoadedのようなオプションを使用して、PDFドキュメントをレンダリングする前に必要なページアセットがすべて読み込まれることを保証できます。 レンダリング遅延を管理するWaitForクラスにはどのようなオプションがありますか? IronPDFのWaitForクラスには、PageLoad、RenderDelay、Fonts、JavaScript、HTML要素、NetworkIdleなどのオプションがあり、PDFをレンダリングする前に特定の条件を待つことができます。 WaitForクラスのPageLoadオプションはPDFレンダリングにどのように影響しますか? IronPDFのWaitForクラスにおけるPageLoadオプションは、ページの読み込みが完了した直後にPDFをレンダリングすることを可能にし、追加の待ち時間はありません。 特定の遅延時間をPDFレンダリング前に設定するにはどうすればいいですか? IronPDFでは、WaitForクラスのRenderDelayオプションを使用して、特定のミリ秒数を指定し、レンダリングを遅らせることができ、特定のタイミングニーズに対応できます。 PDFレンダリングにおけるAllFontsLoadedメソッドの役割は何ですか? IronPDFのAllFontsLoadedメソッドは、PDFレンダリングプロセスが停止し、外部ソースからすべてのフォントが完全に読み込まれるまで待機し、最終PDFがすべての必要なフォントを含むことを保証します。 JavaScriptはPDFレンダリングのタイミングを制御するのに使用できますか? はい、IronPDFではWaitForクラス内でカスタムJavaScript関数を使用し、PDFレンダリングプロセスがいつトリガーされるかを制御できます。 WaitForクラスのNetworkIdleオプションは何をしますか? IronPDFのWaitForクラスにおけるNetworkIdleオプションは、指定されたネットワーク活動レベルが終了するまでPDFレンダリングを遅らせ、すべてのコンテンツが完全に読み込まれることを保証します。 PDFレンダリングにおいてネットワーク活動設定をカスタマイズすることは可能ですか? IronPDFは、ネットワークアイドルの持続時間やレンダリング中の許可されるネットワークリクエスト数など、WaitForクラスでネットワーク活動設定をカスタマイズすることを可能にします。 PDFレンダリング中に無限の待機を防ぐにはどうすれば良いですか? IronPDFのWaitForクラスでは、JavaScript、NetworkIdle、NetworkIdle0、NetworkIdle2などのメソッドとともにmaxWaitTimeパラメータを使用して最大待機時間を設定できます。 WaitFor 機能は .NET 10 と完全に互換性がありますか? はい。IronPDF の WaitFor クラスは .NET 10 でシームレスに動作します。IronPDF は .NET 10 プロジェクトと完全に互換性があるため、.NET 10 をターゲットにする際に、PageLoad、RenderDelay、NetworkIdle などの WaitFor オプションをすべて変更なしで使用できます。 Chaknith Bin 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。 準備はいいですか? Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました 試用ライセンスキーがメールで送信されました。 総ダウンロード数: 16,154,058 ライセンスを見る