IronPDF ハウツー PDFレンダリングを遅らせるためのWaitForの使用 Using the C# WaitFor Class to Delay PDF Rendering カーティス・チャウ 更新日:2026年1月31日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English IronPDFの C# WaitFor クラスは、すべてのアセット、フォント、 JavaScriptが読み込まれるまで PDF のレンダリングを遅延させ、NetworkIdle、 JavaScriptトリガーなどのメソッドを使用して不完全なレンダリングを防ぐのに役立ちます。 クイックスタート: WaitFor を使用して PDF レンダリングを改善する IronPDF の WaitFor 機能を使用すると、開発者は非同期タイミングを管理して PDF レンダリングを改善できます。 RenderDelay のようなオプションを設定すると、変換前にすべてのアセットとスクリプトが読み込まれ、不完全な PDF ドキュメントが防止されます。 このガイドでは、正確かつ効率的なレンダリングを実現するために、プロジェクトに WaitFor を実装する方法を説明します。 new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } } .RenderUrlAsPdf("https://example.com") .SaveAs("output.pdf"); new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } } .RenderUrlAsPdf("https://example.com") .SaveAs("output.pdf"); $vbLabelText $csharpLabel 最小限のワークフロー(5ステップ) PDFレンダリングを遅延させるC# IronPDFライブラリをダウンロードする。 HTML文字列、ファイル、またはウェブURLからPDFドキュメントを生成 `WaitFor` for JavaScriptメソッドを使用して、JavaScript関数からレンダリングをトリガーします。 ネットワーク活動の数に基づいてレンダリングを遅延させる 特定のHTML要素やすべてのフォントが読み込まれるのを待つ WaitFor クラスとそのオプションとは何ですか? PDF を最適なパフォーマンスでレンダリングするために、WaitFor クラスは PDF レンダリング プロセスを改善します。 RenderOptions の WaitFor オブジェクトには、いくつかのオプションがあります。 PageLoad: 待機なしのデフォルトのレンダリング。 RenderDelay: 任意の待機時間を設定します。 Fonts: すべてのフォントが読み込まれるまで待機します。 JavaScript: JavaScript関数を使用してレンダリングをトリガーします。 HTML elements: 要素 ID、名前、タグ名、クエリ セレクターなどの特定の HTML 要素が要素をターゲットするまで待機します。 NetworkIdle: ネットワークのアイドル状態 (0、2、またはカスタム値) を待機します。 これらの機能はHTML文字列をIronPDFでPDFに変換、HTMLファイルをIronPDFでPDFに変換、WebのURLをIronPDFでPDFに変換するときに機能します。 PDFを待たずにすぐにレンダリングするには? デフォルトでは、レンダリングはページの読み込み終了直後に行われます。 通常のレンダリングでは、PageLoad メソッドを呼び出す必要はありません。 このアプローチは、複雑なJavaScriptや外部リソースを使用しないシンプルなHTMLコンテンツに適しています。 :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>"); $vbLabelText $csharpLabel PDFレンダリングの前にカスタム遅延を追加するにはどうすればよいですか? PDFをレンダリングする前に特定の遅延が必要な場合、任意のミリ秒数を遅延として設定することができます。 特に、JavaScriptを多用したコンテンツを扱う場合は、特定のタイミングでの要件に柔軟に対応できます。 このオプションは、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>"); $vbLabelText $csharpLabel 遅延メカニズムは、HTMLにアニメーションや遅延ロードされたコンテンツが含まれている場合や、動的なコンテンツ生成に時間がかかる場合に便利です。 複雑なレンダリング シナリオについては、カスタム レンダリング オプションを参照してください。 レンダリング前にすべてのフォントが読み込まれるまで待つにはどうすればよいですか? WaitFor クラスの AllFontsLoaded メソッドは、Google Fonts などの外部ソースからすべてのフォントが読み込まれるまで PDF のレンダリングを一時停止します。 これにより、最終的なPDFには必要なフォントがすべて含まれ、文書の意図するタイポグラフィと視覚的な外観が保たれます。 この機能は、IronPDF出力品質を維持します。 :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); $vbLabelText $csharpLabel 埋め込みオプションやサブセットオプションなど、PDFのフォント管理に関する詳細については、managing fonts in PDFsのガイドをご覧ください。 カスタム JavaScript を使用して PDF レンダリングをトリガーするには? レンダリングプロセスをより細かく制御するために、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 このアプローチは、AJAXリクエストと組み合わせたり、動的に生成されたコンテンツがレンダリング前に完全に読み込まれるようにしたりする場合に効果的です。 高度なJavaScriptのシナリオについては、PDFでカスタムJavaScriptを実行するのガイドを参照してください。 レンダリング前に特定の HTML 要素を待つにはどうすればよいですか? このオプションを使用すると、レンダリングプロセスは、要素ID、名前、タグ名、クエリセレクタなどの特定のHTML要素をターゲット要素として待機します。 この機能は、シングル・ページ・アプリケーション(SPA)や非同期に読み込まれるコンテンツを扱う際に役立ちます。 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); $vbLabelText $csharpLabel 名前属性で要素を待つにはどうすればよいですか? 以下のコード例では、レンダリングプロセスが特定の要素名を待ちます。 :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); $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); $vbLabelText $csharpLabel クエリ セレクタを使用して要素を待機するにはどうすればよいですか? レンダリングプロセスは、以下のコード例のクエリセレクタで選択された要素を待ちます。 HtmlQuerySelector メソッドは、id of 'myid' および class of 'blablastyle' を持つ img tag を待機します。 :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); $vbLabelText $csharpLabel ネットワーク アクティビティが完了するまでどのように待てばよいですか? リソース、データ、APIコールに対してネットワークリクエストを行うWebページをレンダリングするときは、PDFを生成する前にすべてのネットワークアクティビティが完了するようにしてください。 IronPdfは異なるネットワークシナリオに対応するためにいくつかの方法を提供します。 いつネットワーク アクティビティがゼロになるのを待つべきですか? このタイプのネットワークアイドルは、ネットワークのアクティビティがなくなるまで待機し、通常はコンテンツが完全にロードされたことを示します。 シングルページ・アプリケーション(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>"); $vbLabelText $csharpLabel いつ2つのネットワーク活動を許可すべきですか? NetworkIdle2 メソッドは、長時間ポーリングのネットワーク要求やハートビート ping を実行する Web アプリケーションや Web ページに適しています。 通常、1~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>"); $vbLabelText $csharpLabel ネットワーク アクティビティのしきい値をカスタマイズするには? 複数のネットワークリクエストが関係している場合、ネットワークアイドル時間とネットワークアイドルイベントを無効にしない許容ネットワークリクエスト数**の両方をカスタマイズできます。 このオプションは、前の2つの方法に当てはまらない、特定の要件を持つウェブアプリケーションやウェブページに適しています。 このカスタマイズは、さまざまな状況下での幅広いユースケースに対応します。 :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>"); $vbLabelText $csharpLabel このレベルのカスタマイズは、持続的な接続を維持したり、バックグラウンドのネットワーク活動パターンが予測可能な複雑なWebアプリケーションを扱う場合に価値があります。 最大待ち時間を設定するにはどうすればよいですか? NetworkIdle0、および NetworkIdle2 メソッドを使用すると、待機時間が無期限にならないように最大待機時間を設定できます。これらのメソッドの maxWaitTime パラメータがこの目的に使用されます。 これにより、期待される条件が発生しなかった場合、アプリケーションがいつまでもハングアップするのを防ぐことができます。 指定された時間値はすべてミリ秒です。 このような待機戦略を実施する場合は、コンテンツの完全な読み込みを確保することと、妥当なパフォーマンスを維持することのバランスをとりましょう。 正確なタイミング制御を必要とするアプリケーションについては、asyncPDF生成テクニックを探求してください。 次に何ができるのかを見てみましょうか? チュートリアルページはこちら:追加機能や、より高度なテクニックについてはIronPDFでPDFを作成するをご覧ください。 よくある質問 WaitForクラスとは何ですか? IronPDFのWaitForクラスにより、開発者はすべてのアセット、フォント、JavaScriptの読み込みが終わるまでPDFのレンダリングを遅らせることができます。これは不完全なレンダリングを防ぎ、複雑なウェブページがPDFに変換される前に完全にロードされることを保証します。 どのようなWaitForオプションがありますか? IronPDFのWaitForクラスにはいくつかのオプションがあります:PageLoad(デフォルトは即時レンダリング)、RenderDelay(ミリ秒単位のカスタム遅延)、Fonts(すべてのフォントがロードされるまで待機)、JavaScript(JavaScript関数でレンダリングをトリガー)、HTML要素(ID、名前、タグ、クエリーセレクタで特定の要素を待機)、NetworkIdle(ネットワーク活動が停止するまで待機)。 PDFレンダリングの前にカスタム遅延を追加するにはどうすればよいですか? IronPDFのRenderDelayメソッドを使ってカスタム遅延を追加することができます。遅延をミリ秒単位で指定するだけです:`new ChromePdfRenderer { RenderingOptions = { WaitFor = WaitFor.RenderDelay(3000) } }.}`.これは、JavaScriptを多用するコンテンツで、実行に時間がかかる場合に特に便利です。 特定のHTML要素がレンダリング前に読み込まれるのを待つことはできますか? はい、IronPDFは要素ID、名前、タグ名、クエリーセレクタを使って特定のHTML要素を待機させることができます。これにより、PDF変換が始まる前に重要なコンテンツがページ上に存在することが保証され、最終的なPDFドキュメントの要素の欠落を防ぐことができます。 NetworkIdleとは何ですか? IronPDFのNetworkIdleはPDFをレンダリングする前にネットワークの活動が停止するのを待ちます。0、2、またはカスタム数のネットワーク接続を待つように設定できます。これはAJAXコールや他の非同期ネットワークリクエストによって動的にコンテンツをロードするページに最適です。 JavaScriptからPDFレンダリングをトリガーするには? IronPDFのWaitFor JavaScriptオプションにより、JavaScript関数からレンダリングプロセスをトリガーすることができます。これにより、PDF生成のタイミングを完全に制御することができ、正確なタイミング制御が必要な単一ページのアプリケーションや複雑なJavaScript駆動のWebサイトに最適です。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース 無料トライアル NuGet 無料版 総ダウンロード数: 17,803,474 ライセンスを見る まだスクロールしていますか? すぐに証拠が欲しいですか? PM > Install-Package IronPdf サンプルを実行するHTML が PDF に変換されるのを確認します。 NuGet 無料版 総ダウンロード数: 17,803,474 ライセンスを見る