Using the C# WaitFor Class to Delay PDF Rendering
IronPDF의 C# WaitFor 클래스는 개발자가 모든 리소스, 글꼴 및 JavaScript가 로드될 때까지 PDF 렌더링을 지연시켜, RenderDelay, 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");
최소 워크플로 (5단계)
- PDF 렌더링을 지연시키려면 C# IronPDF 라이브러리를 다운로드하세요
- HTML 문자열, 파일 또는 웹 URL에서 PDF 문서를 생성합니다
- JavaScript 함수에서 렌더링을 트리거하려면
WaitFor를 사용하여 JavaScript 함수에서 렌더링을 트리거합니다 - 네트워크 활동 횟수에 따라 렌더링을 지연시킵니다
- 특정 HTML 요소와 모든 글꼴이 로드될 때까지 기다립니다
WaitFor 클래스와 그 옵션은 무엇입니까?
최적의 성능으로 PDF를 렌더링하기 위해 WaitFor 클래스는 PDF 렌더링 프로세스를 개선합니다. WaitFor의 RenderOptions 객체는 다음과 같은 여러 옵션을 제공합니다:
PageLoad: 대기 시간 없이 기본 렌더링.RenderDelay: 임의의 대기 시간을 설정합니다.Fonts: 모든 글꼴이 로드될 때까지 대기합니다.JavaScript: JavaScript 함수를 사용하여 렌더링을 트리거합니다.HTML elements: 요소 ID, 이름, 태그 이름, 쿼리 선택자 등 특정 HTML 요소를 감지하여 대상 요소를 식별합니다.NetworkIdle: 네트워크 유휴 상태(0, 2 또는 사용자 지정 시간)가 될 때까지 대기합니다.
이러한 기능은 IronPDF를 사용하여 HTML 문자열을 PDF로 변환하거나, HTML 파일을 PDF로 변환하거나, 웹 URL을 PDF로 변환할 때 작동합니다.
기다리지 않고 즉시 PDF를 렌더링하려면 어떻게 해야 하나요?
기본적으로 렌더링은 페이지 로딩이 완료된 직후에 수행됩니다. `` 메서드는 일반적인 렌더링 시 호출할 필요가 없습니다. 이 방식은 복잡한 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>")
PDF 렌더링 전에 사용자 지정 지연 시간을 추가하려면 어떻게 해야 합니까?
PDF를 렌더링하기 전에 특정 지연 시간이 필요한 경우, 임의의 밀리초 수를 지연 시간으로 설정할 수 있습니다. 이는 특히 JavaScript 기반 콘텐츠가 많은 경우, 구체적인 시간 요구 사항에 유연하게 대응할 수 있게 해줍니다.
이 옵션은 속성을 사용하는 기존 구현 방식과 동일하게 작동합니다. 그러나 해당 속성은 더 이상 사용되지 않습니다. 새로운 API를 사용하세요:.
: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>")
HTML에 애니메이션이나 지연 로딩 콘텐츠가 포함되어 있거나 동적 콘텐츠 생성에 시간이 필요한 경우, 지연 메커니즘이 유용합니다. 복잡한 렌더링 시나리오의 경우, 사용자 지정 렌더링 옵션을 살펴보십시오.
렌더링 전에 모든 글꼴이 로드되기를 기다리려면 어떻게 해야 합니까?
클래스의 메서드는 Google Fonts와 같은 외부 소스에서 모든 글꼴이 로드될 때까지 PDF 렌더링을 일시 중지합니다. 이를 통해 최종 PDF에 필요한 모든 글꼴이 포함되어 문서의 의도된 타이포그래피와 시각적 모양이 유지됩니다. 이 기능은 Professional 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);
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)
PDF 내 글꼴 관리(임베딩 및 서브셋팅 옵션 포함)에 대한 자세한 내용은 PDF 내 글꼴 관리 가이드를 참조하십시오.
사용자 정의 JavaScript를 사용하여 PDF 렌더링을 트리거하는 방법은 무엇입니까?
렌더링 과정을 더 세밀하게 제어하려면, PDF 문서를 렌더링하기 전에 실행될 사용자 정의 JavaScript 함수를 지정할 수 있습니다. 이를 통해 렌더링 프로세스를 시작하기 전에 필요한 작업이나 확인을 수행할 수 있어, 렌더링을 언제 실행할지 제어할 수 있습니다.
JavaScript에서 함수는 렌더링 작업을 트리거합니다.가 호출되면 렌더링 프로세스가 시작됩니다. 함수를 호출할 시점은 사용자가 결정합니다.
: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);
이 접근 방식은 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)
'name' 속성을 사용하여 요소를 기다리려면 어떻게 해야 하나요?
아래 코드 예제에서 렌더링 프로세스는 특정 요소 이름을 기다립니다.
: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)
태그 이름으로 요소를 기다리려면 어떻게 해야 하나요?
아래 코드 예시에서 렌더링 프로세스는 특정 요소 태그 이름을 기다립니다.
: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)
쿼리 선택기를 사용하여 요소를 기다리려면 어떻게 해야 하나요?
렌더링 프로세스는 아래 코드 예제에서 쿼리 선택자가 지정한 요소를 기다립니다. 메서드는img 태그의 id가 'myid'이고 class가 '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);
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)
네트워크 활동이 완료될 때까지 어떻게 기다려야 하나요?
리소스, 데이터 또는 API 호출을 위해 네트워크 요청을 수행하는 웹 페이지를 렌더링할 때는 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>")
언제 두 가지 네트워크 활동을 허용해야 할까요?
`` 메서드는 롱 폴링(long-polling) 네트워크 요청이나 하트비트 핑(heartbeat ping)을 사용하는 웹 애플리케이션이나 웹 페이지에 적합합니다. 일반적으로 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>")
네트워크 활동 임계값은 어떻게 사용자 지정하나요?
여러 네트워크 요청이 포함된 경우, 네트워크 유휴 기간과 네트워크 유휴 이벤트를 무효화하지 않는 허용된 네트워크 요청 수를 모두 사용자 지정할 수 있습니다. 이 옵션은 앞서 언급한 두 가지 방법으로는 적합하지 않은 특정 요구 사항이 있는 웹 애플리케이션이나 웹 페이지에 적합합니다. 이 맞춤 설정은 다양한 상황에서 발생하는 광범위한 사용 사례를 처리합니다.
: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>")
이러한 수준의 맞춤화는 지속적인 연결을 유지하거나 예측 가능한 백그라운드 네트워크 활동 패턴을 보이는 복잡한 웹 애플리케이션을 다룰 때 유용합니다.
최대 대기 시간을 설정하려면 어떻게 해야 하나요?
,, 및 메서드를 사용하면 대기 시간이 무한정 지속되지 않도록 최대 대기 시간을 설정할 수 있습니다. 이 메서드들의 `` 매개변수가 바로 이 목적을 수행합니다. 이를 통해 예상된 조건이 발생하지 않을 경우 애플리케이션이 무한정 멈춰버리는 것을 방지할 수 있습니다.
지정된 모든 시간 값은 밀리초 단위입니다.
이러한 대기 전략을 구현할 때는 콘텐츠가 완전히 로드되도록 보장하는 것과 합리적인 성능을 유지하는 것 사이의 균형을 맞춰야 합니다. 정밀한 타이밍 제어가 필요한 애플리케이션의 경우, 비동기 PDF 생성 기법을 살펴보십시오.
다른 기능도 확인해 보시겠습니까? 여기에서 튜토리얼 페이지를 확인하세요: 추가 기능 또는 IronPDF를 사용하여 PDF를 생성하는 방법을 살펴보고 더 고급 기술을 알아보세요.
자주 묻는 질문
WaitFor 클래스는 무엇이며 왜 사용해야 할까요?
IronPDF의 WaitFor 클래스를 사용하면 개발자는 모든 에셋, 글꼴 및 JavaScript가 로드될 때까지 PDF 렌더링을 지연할 수 있습니다. 이를 통해 불완전한 렌더링을 방지하고 복잡한 웹 페이지가 PDF로 변환되기 전에 완전히 로드되도록 하여 더욱 정확하고 완전한 PDF 문서를 생성할 수 있습니다.
WaitFor 옵션에는 어떤 것들이 있나요?
IronPDF의 WaitFor 클래스는 PageLoad(기본값은 즉시 렌더링), RenderDelay(밀리초 단위의 사용자 지정 지연 시간), Fonts(모든 글꼴이 로드될 때까지 대기), JavaScript(JavaScript 함수를 통해 렌더링 트리거), HTML elements(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 기반 웹사이트에 적합합니다.

