IronPDF 방법 WaitFor를 사용하여 PDF 렌더링을 지연시키세요. Using the C# WaitFor Class to Delay PDF Rendering 커티스 차우 업데이트됨:1월 10, 2026 다운로드 IronPDF NuGet 다운로드 DLL 다운로드 윈도우 설치 프로그램 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 This article was translated from English: Does it need improvement? Translated View the article in English 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"); $vbLabelText $csharpLabel ### 최소 워크플로우(5단계) PDF 렌더링을 지연시키려면 C# IronPDF 라이브러리를 다운로드하세요. HTML 문자열, 파일 또는 웹 URL에서 PDF 문서를 생성합니다. JavaScript 함수에서 렌더링을 트리거하려면 JavaScript의 `WaitFor` 메서드를 사용하십시오. 네트워크 활동 수에 따라 렌더링을 지연시킵니다. 특정 HTML 요소와 모든 글꼴이 로드될 때까지 기다리세요. WaitFor 클래스와 해당 옵션은 무엇입니까? 최적의 성능으로 PDF를 렌더링하기 위해 WaitFor 클래스는 PDF 렌더링 프로세스를 개선합니다. RenderOptions의 WaitFor 객체는 다음과 같은 몇 가지 옵션을 제공합니다. PageLoad: 대기 없이 기본 렌더링이 진행됩니다. RenderDelay: 임의의 대기 시간을 설정합니다. Fonts: 모든 글꼴이 로드될 때까지 기다립니다. JavaScript: JavaScript 함수를 사용하여 렌더링을 트리거합니다. HTML elements: 요소 ID, 이름, 태그 이름 및 쿼리 선택자와 같은 특정 HTML 요소를 기다립니다. NetworkIdle: 네트워크 유휴 시간(0, 2 또는 사용자 지정 값)을 기다립니다. 이러한 기능은 IronPDF를 사용하여 HTML 문자열을 PDF로 변환하거나, HTML 파일을 PDF로 변환하거나 , 웹 URL을 PDF로 변환 할 때 작동합니다. 기다리지 않고 PDF 파일을 즉시 렌더링하려면 어떻게 해야 하나요? 기본적으로 페이지 로딩이 완료된 직후에 렌더링이 발생합니다. PageLoad 메서드는 일반적인 렌더링에는 호출할 필요가 없습니다. 이 접근 방식은 복잡한 자바스크립트나 외부 리소스가 없는 간단한 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를 렌더링하기 전에 특정 지연 시간이 필요한 경우, 임의의 밀리초 단위로 지연 시간을 설정할 수 있습니다. 이는 특히 자바스크립트 사용량이 많은 콘텐츠를 처리할 때 특정 타이밍 요구 사항에 대한 유연성을 제공합니다. 이 옵션은 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에 필요한 모든 글꼴이 포함되어 문서의 의도된 서체와 시각적 모양이 유지됩니다. 이 기능은 전문적인 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); $vbLabelText $csharpLabel PDF에서 글꼴을 관리하는 방법(삽입 및 부분집합 옵션 포함)에 대한 자세한 내용은 PDF에서 글꼴 관리 가이드를 참조하세요. 사용자 지정 JavaScript를 사용하여 PDF 렌더링을 트리거하는 방법은 무엇입니까? 렌더링 프로세스를 더욱 세밀하게 제어하려면 PDF 문서를 렌더링하기 전에 실행되는 사용자 지정 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 메서드는 img tag와 id of 'myid' 및 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); $vbLabelText $csharpLabel 네트워크 작업이 완료될 때까지 어떻게 기다려야 하나요? 리소스, 데이터 또는 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>"); $vbLabelText $csharpLabel 두 개의 네트워크 활동을 동시에 허용해야 하는 경우는 언제인가요? 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>"); $vbLabelText $csharpLabel 네트워크 활동 임계값을 사용자 지정하는 방법은 무엇입니까? 여러 네트워크 요청이 관련된 경우, 네트워크 유휴 시간 과 네트워크 유휴 이벤트를 무효화하지 않는 허용 네트워크 요청 수를 모두 사용자 지정할 수 있습니다. 이 옵션은 앞서 설명한 두 가지 방법에는 적합하지 않은 특정 요구 사항을 가진 웹 애플리케이션이나 웹 페이지에 적합합니다. 이러한 맞춤 설정은 다양한 상황에서 발생하는 광범위한 사용 사례를 해결합니다. :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 이러한 수준의 맞춤 설정은 지속적인 연결을 유지하거나 예측 가능한 백그라운드 네트워크 활동 패턴을 가진 복잡한 웹 애플리케이션을 다룰 때 유용합니다. 최대 대기 시간을 어떻게 설정하나요? JavaScript, NetworkIdle, NetworkIdle0 및 NetworkIdle2 메서드를 사용하면 최대 대기 시간을 설정하여 대기가 무한정 지속되지 않도록 할 수 있습니다. 이러한 메서드의 maxWaitTime 매개변수가 이 목적을 위해 사용됩니다. 이렇게 하면 예상되는 조건이 충족되지 않을 경우 애플리케이션이 무한정 멈춰 있는 것을 방지할 수 있습니다. 명시된 모든 시간 값은 밀리초 단위입니다. 이러한 대기 전략을 구현할 때는 콘텐츠가 완전히 로드되도록 보장하는 것과 적절한 성능을 유지하는 것 사이에서 균형을 유지해야 합니다. 정확한 타이밍 제어가 필요한 애플리케이션의 경우 비동기 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 호출이나 기타 비동기 네트워크 요청을 통해 콘텐츠를 동적으로 로드하는 페이지에 적합합니다. 자바스크립트에서 PDF 렌더링을 어떻게 실행할 수 있나요? IronPDF의 WaitFor JavaScript 옵션을 사용하면 JavaScript 함수에서 렌더링 프로세스를 시작할 수 있습니다. 이를 통해 PDF 생성 시점을 완벽하게 제어할 수 있으므로, 정확한 타이밍 제어가 필요한 단일 페이지 애플리케이션이나 복잡한 JavaScript 기반 웹사이트에 적합합니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 시작할 준비 되셨나요? Nuget 다운로드 17,527,568 | 버전: 2026.2 방금 출시되었습니다 NuGet 무료 다운로드 총 다운로드 수: 17,527,568 라이선스 보기