IronPDF 방법 Blazor Server에서 PDF로 렌더링 IronPDF Blazor 서버 튜토리얼: C#을 사용하여 HTML을 PDF로 렌더링하기 커티스 차우 업데이트됨: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#을 사용하여 Blazor Server 애플리케이션에서 HTML을 PDF로 변환할 수 있도록 지원하며, .NET 6을 지원하고 Blazor 구성 요소에서 직접 PDF를 생성할 수 있는 기능을 제공합니다. 빠른 시작: Blazor 서버에서 PDF 렌더링 Blazor Server 애플리케이션에서 IronPDF를 시작해 보세요. 이 예제는 HTML 콘텐츠를 PDF로 렌더링하는 방법을 보여줍니다. 몇 줄의 코드로 Blazor 컴포넌트를 PDF로 변환하세요. 지금 바로 NuGet을 사용하여 PDF 만들기를 시작하세요. NuGet 패키지 관리자를 사용하여 IronPDF를 설치하세요. PM > Install-Package IronPdf 다음 코드 조각을 복사하여 실행하세요. IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath); 실제 운영 환경에서 테스트할 수 있도록 배포하세요. 지금 바로 무료 체험판을 통해 프로젝트에서 IronPDF를 사용해 보세요. 30일 무료 체험 ### 최소 워크플로우(5단계) Blazor 애플리케이션용 HTML-PDF 변환 라이브러리를 설치하세요. Visual Studio에서 새 Blazor 프로젝트를 생성합니다. URL을 사용하여 웹 페이지를 PDF 문서로 변환합니다. 클라이언트의 웹 브라우저에 웹 페이지를 렌더링합니다. HTML 문자열에서 PDF 문서를 보는 방법 Blazor 서버 프로젝트를 새로 만드는 방법은 무엇인가요? 새 프로젝트를 만들고 유형을 Blazor 서버 앱으로 선택하세요. Visual Studio는 .NET을 사용하여 PDF를 생성할 수 있는 서버 측 Blazor 애플리케이션을 빌드하기 위한 템플릿을 제공합니다. Blazor Server 호스팅 모델은 애플리케이션 로직을 서버에서 실행하므로 서버 측 처리가 필요한 PDF 생성 시나리오 에 적합합니다. Blazor 서버 앱을 사용하기 위한 필수 조건은 무엇인가요? IronPDF를 사용하여 Blazor Server 애플리케이션을 만들기 전에 Visual Studio 2022 이상 버전과 ASP.NET 및 웹 개발 워크로드가 설치되어 있는지 확인하십시오. .NET 6 SDK 이상이 필요합니다. Blazor Server 앱은 서버와의 지속적인 연결이 필요하므로 복잡한 HTML 콘텐츠에서 PDF를 생성해야 하거나 서버에 보관해야 하는 민감한 데이터를 다룰 때 적합합니다. 어떤 .NET 버전을 사용해야 할까요? Blazor Server 애플리케이션에서 IronPDF와의 호환성 및 성능을 높이려면 .NET 6 이상을 사용하십시오. IronPDF는 .NET Core 3.1, .NET 5, .NET 6, .NET 7 및 .NET 8과 호환됩니다. 최신 LTS 버전(.NET 6 또는 .NET 8)은 안정성과 장기적인 지원을 제공합니다. Azure에 배포할 때는 Azure App Service 플랜이 선택한 .NET 버전을 지원하는지 확인하세요. 프로젝트 설정을 어떻게 구성하나요? Blazor Server 프로젝트를 구성할 때 클라이언트와 서버 간의 안전한 통신을 보장하기 위해 "HTTPS용으로 구성"을 선택하십시오. Docker 환경에서 IronPDF를 실행할 계획이 아니라면 "Docker 활성화" 옵션을 선택 해제하십시오. 인증은 처음에는 "없음"을 선택하세요. 필요한 경우 나중에 인증을 추가할 수 있습니다. 프로젝트 이름은 C# 명명 규칙을 따라야 하며 공백이나 특수 문자를 사용해서는 안 됩니다. Blazor 프로젝트에 IronPDF를 설치하는 방법은 무엇인가요? 프로젝트를 생성한 후 다음 단계를 따라 Visual Studio의 NuGet에서 IronPDF 라이브러리를 설치하십시오. IronPDF는 HTML 문자열, URL 및 기존 PDF 문서에서 PDF를 생성하는 API를 제공합니다. Visual Studio의 솔루션 탐색기 창에서 References를 마우스 오른쪽 버튼으로 클릭하고 Manage NuGet Packages를 선택합니다. 찾아보기를 선택하고 IronPdf를 검색하세요. 패키지의 최신 버전을 선택하고, 프로젝트 옆의 확인란을 선택한 다음, 설치를 클릭합니다. 또는 .NET CLI를 사용하여 설치할 수도 있습니다. Install-Package IronPdf 특정 플랫폼을 대상으로 하는 프로젝트의 경우 플랫폼별 패키지가 필요할 수 있습니다. 예를 들어 Linux에 배포하는 경우 Linux 설치 가이드를 참조하십시오. CLI 대신 NuGet 패키지 관리자를 선택해야 하는 이유는 무엇일까요? Visual Studio의 NuGet 패키지 관리자 GUI는 패키지 버전을 탐색하고, 종속성을 확인하고, 여러 프로젝트를 동시에 관리하는 작업을 더 쉽게 할 수 있는 시각적 인터페이스를 제공합니다. 이는 IronPDF를 처음 사용하는 개발자가 사용 가능한 패키지와 해당 설명을 살펴보는 데 도움이 됩니다. CLI 방식은 숙련된 개발자에게 더 빠르고 자동화된 빌드 파이프라인이나 Docker 컨테이너를 사용할 때 더 적합합니다. 어떤 버전의 IronPDF를 설치해야 할까요? 새로운 기능, 성능 향상 및 보안 업데이트를 이용하려면 IronPDF의 최신 안정 버전을 설치하십시오. 최근 업데이트에 대한 자세한 내용은 변경 로그를 확인하세요. 기존 프로젝트를 사용하는 경우 다른 종속 항목과의 버전 호환성을 확인하십시오. 실제 운영 환경에서는 주요 버전 업그레이드 전에 철저한 테스트를 진행하십시오. 설치가 성공적으로 완료되었는지 어떻게 확인할 수 있나요? 설치 후 솔루션 탐색기의 "패키지" 폴더를 확인하여 IronPDF가 올바르게 설치되었는지 확인하십시오. 프로젝트 종속성 목록에 "IronPdf"가 표시되어야 합니다. C# 파일에 using IronPdf;를 추가하면 IntelliSense가 네임스페이스를 인식합니다. HTML을 사용하여 기본적인 PDF를 생성하는 간단한 테스트를 실행하여 모든 것이 올바르게 작동하는지 확인할 수도 있습니다. PDF 생성을 위한 새로운 Razor 컴포넌트를 어떻게 추가하나요? IronPDF가 Blazor 프로젝트에 설치되면 새 Razor 컴포넌트를 추가하세요. 이 튜토리얼에서는 해당 파일의 이름을 "IronPdfComponent"로 지정하세요. 이 구성 요소는 사용자 입력을 처리하고 HTML 콘텐츠를 기반으로 PDF를 동적으로 생성합니다. Blazor의 컴포넌트 아키텍처를 사용하면 애플리케이션 전체에서 공유할 수 있는 재사용 가능한 PDF 생성 기능을 쉽게 만들 수 있습니다. 그 후, 코드를 다음과 같이 업데이트하십시오. @page "/IronPdf" @inject IJSRuntime JS <h3>IronPdfComponent</h3> <EditForm Model="@_InputMsgModel" id="inputText"> <div> <InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" /> </div> <div> <button type="button" @onclick="@SubmitHTML">Render HTML</button> </div> </EditForm> @page "/IronPdf" @inject IJSRuntime JS <h3>IronPdfComponent</h3> <EditForm Model="@_InputMsgModel" id="inputText"> <div> <InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" /> </div> <div> <button type="button" @onclick="@SubmitHTML">Render HTML</button> </div> </EditForm> HTML @code { // Model to bind user input private InputHTMLModel _InputMsgModel = new InputHTMLModel(); private async Task SubmitHTML() { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Create a renderer to convert HTML to PDF var render = new IronPdf.ChromePdfRenderer(); // Configure rendering options for better output render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; render.RenderingOptions.MarginTop = 40; render.RenderingOptions.MarginBottom = 40; // Render the HTML input into a PDF document var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML); var fileName = "iron.pdf"; // Create a stream reference for the PDF content using var streamRef = new DotNetStreamReference(stream: doc.Stream); // Invoke JavaScript function to download the PDF in the browser await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef); } public class InputHTMLModel { public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1> <p>This is a sample PDF generated from HTML content in Blazor Server.</p> <ul> <li>Easy to use API</li> <li>High-quality rendering</li> <li>Full HTML5 and CSS3 support</li> </ul>"; } } @code { // Model to bind user input private InputHTMLModel _InputMsgModel = new InputHTMLModel(); private async Task SubmitHTML() { // Set your IronPDF license key IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"; // Create a renderer to convert HTML to PDF var render = new IronPdf.ChromePdfRenderer(); // Configure rendering options for better output render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; render.RenderingOptions.MarginTop = 40; render.RenderingOptions.MarginBottom = 40; // Render the HTML input into a PDF document var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML); var fileName = "iron.pdf"; // Create a stream reference for the PDF content using var streamRef = new DotNetStreamReference(stream: doc.Stream); // Invoke JavaScript function to download the PDF in the browser await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef); } public class InputHTMLModel { public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1> <p>This is a sample PDF generated from HTML content in Blazor Server.</p> <ul> <li>Easy to use API</li> <li>High-quality rendering</li> <li>Full HTML5 and CSS3 support</li> </ul>"; } } $vbLabelText $csharpLabel 이 구성 요소는 PDF 생성을 위해 ChromePdfRenderer 클래스를 사용합니다. 용지 크기 , 여백 , 머리글/바닥글 등 다양한 옵션을 사용하여 렌더링을 사용자 지정할 수 있습니다. Blazor 애플리케이션에서 IronPDF로 렌더링된 PDF를 다운로드할 수 있도록 하려면 다음 JavaScript 코드를 _layout.cshtml에 추가하세요. <script> // JavaScript function to download PDFs generated by IronPdf window.SubmitHTML = async (fileName, contentStreamReference) => { // Get the PDF content as an ArrayBuffer const arrayBuffer = await contentStreamReference.arrayBuffer(); // Create a Blob from the ArrayBuffer const blob = new Blob([arrayBuffer]); // Create an object URL for the Blob const url = URL.createObjectURL(blob); // Create an anchor element to initiate the download const anchorElement = document.createElement("a"); anchorElement.href = url; anchorElement.download = fileName ?? "download.pdf"; // Programmatically click the anchor to start the download anchorElement.click(); // Clean up by removing the anchor and revoking the object URL anchorElement.remove(); URL.revokeObjectURL(url); }; </script> <script> // JavaScript function to download PDFs generated by IronPdf window.SubmitHTML = async (fileName, contentStreamReference) => { // Get the PDF content as an ArrayBuffer const arrayBuffer = await contentStreamReference.arrayBuffer(); // Create a Blob from the ArrayBuffer const blob = new Blob([arrayBuffer]); // Create an object URL for the Blob const url = URL.createObjectURL(blob); // Create an anchor element to initiate the download const anchorElement = document.createElement("a"); anchorElement.href = url; anchorElement.download = fileName ?? "download.pdf"; // Programmatically click the anchor to start the download anchorElement.click(); // Clean up by removing the anchor and revoking the object URL anchorElement.remove(); URL.revokeObjectURL(url); }; </script> JAVASCRIPT 공유 폴더에 있는 NavMenu.razor 파일을 편집하여 새 Razor 구성 요소로 이동하는 탐색 탭을 추가하세요. 다음 코드를 추가하세요: <div class="nav-item px-3"> <NavLink class="nav-link" href="IronPdf"> <span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf </NavLink> </div> <div class="nav-item px-3"> <NavLink class="nav-link" href="IronPdf"> <span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf </NavLink> </div> HTML 이 모든 단계를 완료한 후 솔루션을 실행하면 다음과 같은 결과가 나타날 것입니다. Blazor에서 PDF 다운로드에 JavaScript를 사용하는 이유는 무엇일까요? Blazor Server는 SignalR 연결을 통해 작동하며 모든 C# 코드는 서버에서 실행됩니다. 파일 다운로드와 같은 브라우저별 작업을 실행하려면 JavaScript 상호 운용성이 필요합니다. DotNetStreamReference 클래스는 전체 PDF를 한 번에 메모리에 로드하지 않고 서버에서 클라이언트로 바이너리 데이터를 전송합니다. 이 접근 방식은 base64 인코딩보다 효율적이며 대용량 PDF 파일에 잘 적용됩니다. 다른 접근 방식으로는 PDF를 메모리 스트림으로 내보내는 것을 고려해 보세요. PDF 다운로드 기능을 구현할 때 흔히 발생하는 문제점은 무엇인가요? 일반적인 어려움으로는 SignalR 연결 시간 초과를 유발할 수 있는 대용량 파일 처리, 동시 PDF 생성 요청 관리, 리소스의 적절한 폐기 보장 등이 있습니다. 메모리 누수를 방지하려면 PDF 문서와 스트림을 항상 올바르게 해제해야 합니다. 성능 향상을 위해 비동기 PDF 생성 구현을 고려해 보세요. 렌더링 문제가 발생하는 경우, 렌더링 옵션 설명서를 참조하여 설정 방법을 확인하세요. 용량이 큰 PDF 파일은 어떻게 처리해야 하나요? 대용량 PDF 파일의 경우 진행률 표시기와 분할 다운로드 기능을 구현하는 것을 고려해 보세요. 압축 기술을 사용하면 PDF 파일 크기를 최적화할 수 있습니다. Blazor 서버 구성에 적절한 타임아웃 시간을 설정하세요. services.AddServerSideBlazor() .AddHubOptions(options => { options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB options.ClientTimeoutInterval = TimeSpan.FromSeconds(60); }); services.AddServerSideBlazor() .AddHubOptions(options => { options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB options.ClientTimeoutInterval = TimeSpan.FromSeconds(60); }); $vbLabelText $csharpLabel 용량이 매우 큰 문서의 경우, 직접 스트리밍하는 대신 먼저 서버 저장소에 저장한 후 다운로드 링크를 제공하는 것을 고려해 보세요. 스트림 참조와 직접 다운로드 중 어떤 것을 언제 사용해야 할까요? 즉시 다운로드가 필요한 50MB 미만의 PDF 파일에는 DotNetStreamReference를 사용하세요. 파일 크기가 크거나 PDF 파일을 디스크에 저장 해야 하는 경우, 서버에서 PDF를 생성하고 다운로드 링크를 제공하는 것을 고려해 보세요. 보고서나 송장 같은 경우에는 직접 다운로드가 효과적이지만, 여러 PDF 파일을 일괄 처리하거나 병합할 때는 서버 측 저장소를 활용하는 것이 더 효율적일 수 있습니다. 접근 방식을 선택할 때는 애플리케이션의 메모리 제약 조건과 사용자 경험 요구 사항을 고려하십시오. 자주 묻는 질문 PDF 생성을 위한 새로운 Blazor Server 프로젝트를 어떻게 생성하나요? IronPDF를 사용하는 Blazor Server 프로젝트를 생성하려면 Visual Studio에서 프로젝트 유형으로 'Blazor Server 앱'을 선택하세요. Blazor Server 호스팅 모델은 애플리케이션 로직을 서버에서 실행하므로 IronPDF를 사용한 서버 측 처리가 필요한 PDF 생성 시나리오에 적합합니다. PDF 생성 기능을 갖춘 Blazor Server 앱을 사용하기 위한 필수 조건은 무엇입니까? Visual Studio 2022 이상 버전과 ASP.NET 및 웹 개발 워크로드, 그리고 .NET 6 SDK 이상이 필요합니다. Blazor Server 앱은 지속적인 서버 연결이 필요하므로 IronPDF를 사용하여 복잡한 HTML 콘텐츠에서 PDF를 생성하거나 서버에 보관해야 하는 민감한 데이터를 처리할 때 적합합니다. Blazor에서 PDF를 생성하려면 어떤 .NET 버전을 사용해야 할까요? Blazor Server 애플리케이션에서 IronPDF의 최적의 호환성과 성능을 위해서는 .NET 6 이상을 사용하십시오. IronPDF는 .NET Core 3.1, .NET 5, .NET 6, .NET 7 및 .NET 8을 지원합니다. 최신 LTS 버전(.NET 6 또는 .NET 8)은 안정성과 장기적인 지원을 제공합니다. Blazor PDF 애플리케이션의 프로젝트 설정을 어떻게 구성하나요? IronPDF용 Blazor 서버 프로젝트를 구성할 때 안전한 통신을 위해 'HTTPS 구성'을 선택하세요. Docker 컨테이너에서 IronPDF를 실행할 계획이 없다면 'Docker 사용'은 선택 해제해 두세요. 인증은 '없음'으로 시작하고 나중에 추가할 수 있습니다. 공백이나 특수 문자를 사용하지 않고 올바른 C# 명명 규칙을 따르세요. Blazor Server에서 HTML을 PDF로 빠르게 생성하는 방법은 무엇인가요? IronPDF는 Blazor 서버에서 HTML을 PDF로 변환하는 간단한 한 줄짜리 솔루션을 제공합니다. 바로 `IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath)`입니다. 이를 통해 최소한의 코드로 Blazor 컴포넌트를 PDF로 변환할 수 있습니다. Blazor에서 PDF 생성을 구현하기 위한 최소한의 워크플로는 무엇인가요? 최소 워크플로는 다음 5단계로 구성됩니다. 1) IronPDF HTML-to-PDF 라이브러리 설치, 2) Visual Studio에서 새 Blazor 프로젝트 생성, 3) IronPDF를 사용하여 URL을 통해 웹 페이지를 PDF 문서로 변환, 4) 클라이언트의 웹 브라우저에 웹 페이지 렌더링, 5) HTML 문자열에서 생성된 PDF 문서 보기. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 시작할 준비 되셨나요? Nuget 다운로드 17,527,568 | 버전: 2026.2 방금 출시되었습니다 NuGet 무료 다운로드 총 다운로드 수: 17,527,568 라이선스 보기