C# PDF レンダリングを遅延させるための WaitFor の使用方法

Using the C# WaitFor Class to Delay PDF Rendering

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFのC# WaitFor クラスは、すべてのアセット、フォント、JavaScriptが読み込まれるまでPDFレンダリングを遅延させ、NetworkIdle、JavaScriptトリガーなどのメソッドを使用して不完全なレンダリングを防ぎます。

クイックスタート: PDFレンダリングを改善するためのWaitForの使用

IronPDFのWaitFor機能は、非同期のタイミングを管理することでPDFレンダリングを改善します。 RenderDelayのようなオプションを設定することで、変換前にすべてのアセットとスクリプトがロードされることを保証し、不完全なPDF文書を防ぐことができます。 このガイドは、プロジェクトでWaitForを実装して、正確かつ効率的なレンダリングを実現する方法を示しています。

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-1.cs
new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } }
    .RenderUrlAsPdf("https://example.com")
    .SaveAs("output.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer With {
    .RenderingOptions = New ChromePdfRenderOptions With {
        .WaitFor = WaitFor.RenderDelay(3000)
    }
}

renderer.RenderUrlAsPdf("https://example.com").SaveAs("output.pdf")
$vbLabelText   $csharpLabel

WaitForクラスとそのオプションとは?

最適なパフォーマンスでPDFをレンダリングするために、WaitForクラスはPDFレンダリングプロセスを改善します。 WaitForオブジェクトは、いくつかのオプションを提供します。

  • PageLoad: 待ち時間なしでのデフォルトレンダリングです。
  • RenderDelay: 任意の待ち時間を設定します。
  • Fonts: すべてのフォントが読み込まれるまで待ちます。
  • JavaScript: JavaScript関数を使用してレンダリングをトリガーします。
  • HTML elements: 特定のHTML要素(要素ID、名前、タグ名、クエリセレクタなど)を対象に待ちます。
  • 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>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad()

Dim pdf As PdfDocument = 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>");
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

遅延メカニズムは、HTMLにアニメーションや遅延ロードされたコンテンツが含まれている場合や、動的なコンテンツ生成に時間がかかる場合に便利です。 複雑なレンダリング シナリオについては、カスタム レンダリング オプションを参照してください。

レンダリング前にすべてのフォントが読み込まれるまで待つにはどうすればよいですか?

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);
Imports IronPdf

Dim htmlContent As String = "
<!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>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.AllFontsLoaded(10000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

埋め込みオプションやサブセットオプションなど、PDFのフォント管理に関する詳細については、managing fonts in PDFsのガイドをご覧ください。

Icon Quote related to レンダリング前にすべてのフォントが読み込まれるまで待つにはどうす...

私のお気に入りのこの種のライブラリはIronPDFです。PDFファイルの迅速で効率的な操作が可能です。また、PDF/A形式へのエクスポートやPDF文書へのデジタル署名といった多くの貴重な機能も備えています。

Milan Jovanovic related to レンダリング前にすべてのフォントが読み込まれるまで待つにはどう...

Milan Jovanovic

Microsoft MVP

ケーススタディを見る
Icon Quote related to レンダリング前にすべてのフォントが読み込まれるまで待つにはどうす...

IronOCRのおかげで私たちは年間$40,000を手作業の処理から節約し、生産性を向上させ、高影響のタスクにリソースを充てることができます。非常にお勧めします。

Brent Matzelle related to レンダリング前にすべてのフォントが読み込まれるまで待つにはどう...

Brent Matzelle

最高技術責任者, OPYN

ケーススタディを見る
Icon Quote related to レンダリング前にすべてのフォントが読み込まれるまで待つにはどうす...

IronSuiteは私たちの業務において重要な役割を果たしています。これらは、フロアプランの作成や在庫管理の改善を含め、ビジネス全体の効率を向上させるツールです。

David Jones related to レンダリング前にすべてのフォントが読み込まれるまで待つにはどうす...

David Jones

リードソフトウェアエンジニア、Agorus Build

ケーススタディを見る

カスタム 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);
Imports IronPdf

Dim htmlContent As String = "
<!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>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000)

Dim pdf As PdfDocument = 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);
Imports IronPdf

Dim htmlContent As String = "
<!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>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000)

Dim pdf As PdfDocument = 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);
Imports IronPdf

Dim htmlContent As String = "
<!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>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementByTagName("h2", 5000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

クエリ セレクタを使用して要素を待機するにはどうすればよいですか?

レンダリングプロセスは、以下のコード例のクエリセレクタで選択された要素を待ちます。 class of 'blablastyle'があるときに待ちます。

: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);
Imports IronPdf

Dim htmlContent As String = "
<!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>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("img#myid.blablastyle", 5000)

Dim pdf As PdfDocument = 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>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render unless there has been no network activity for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle0()

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

いつ2つのネットワーク活動を許可すべきですか?

NetworkIdle2メソッドは、ロングポーリングネットワークリクエストやハートビートピンを持つウェブアプリケーションやウェブページに適しています。 通常、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>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render unless there are at most 2 network activities for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle2()

Dim pdf As PdfDocument = 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>");
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

このレベルのカスタマイズは、持続的な接続を維持したり、バックグラウンドのネットワーク活動パターンが予測可能な複雑なWebアプリケーションを扱う場合に価値があります。

最大待ち時間を設定するにはどうすればよいですか?

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
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 20,296,129 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。