C#을 사용하여 Blazor Server에서 Razor 파일을 PDF로 변환하는 방법

C#을 사용하여 Blazor Server에서 Razor 파일을 PDF로 변환

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

IronPDF의 RenderRazorComponentToPdf 메서드를 사용하여 Blazor Server에서 Razor 구성 요소를 PDF로 변환합니다. 최소한의 코드로 C# UI 컴포넌트를 PDF로 변환하고, 머리글, 바닥글 및 페이지 서식을 완벽하게 사용자 지정할 수 있습니다.

빠른 시작: Razor 컴포넌트를 몇 분 만에 PDF로 변환하기

IronPDF를 사용하여 Blazor Server 애플리케이션의 Razor 컴포넌트를 PDF로 변환합니다. RenderRazorComponentToPdf 메서드는 몇 줄의 코드로 Razor 구성 요소를 PDF로 변환합니다. 이 가이드를 따라 최소한의 설정과 유연한 사용자 지정 옵션을 통해 Razor의 PDF 변환 기능을 프로젝트에 통합해 보세요.

Nuget Icon지금 바로 NuGet을 사용하여 PDF 만들기를 시작하세요.

  1. NuGet 패키지 관리자를 사용하여 IronPDF를 설치하세요.

    PM > Install-Package IronPdf

  2. 다음 코드 조각을 복사하여 실행하세요.

    // Install-Package IronPdf.Extensions.Blazor
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component-to-pdf.pdf");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    지금 바로 무료 체험판을 통해 프로젝트에서 IronPDF를 사용해 보세요.
    arrow pointer

Razor 파일을 PDF로 변환하려면 어떤 NuGet 패키지가 필요합니까?

IronPdf.Extensions.Blazor 패키지는 메인 IronPdf 패키지를 확장합니다. 두 패키지 모두 Blazor 서버 앱에서 Razor 컴포넌트를 PDF 문서로 렌더링하는 데 필요합니다. 이 확장 프로그램은 Blazor 서버 애플리케이션과의 통합 지점을 제공하여 대대적인 코드 수정 없이 기존 Razor 컴포넌트를 PDF로 변환할 수 있도록 지원합니다.

IronPdf.Extensions.Blazor를 설치하면 핵심 IronPDF 라이브러리가 종속성으로 자동으로 포함됩니다. 확장 패키지는 Blazor의 컴포넌트 모델을 이해하고 바인딩된 데이터로 컴포넌트를 올바르게 렌더링하는 RenderRazorComponentToPdf와 같은 메서드를 추가합니다. 최적의 성능과 최신 기능을 사용하려면 두 패키지 모두 최신 버전을 사용하십시오. 업데이트 및 개선 사항은 변경 로그를 확인하세요.

Install-Package IronPdf.Extensions.Blazor
PDF용 C# NuGet 라이브러리
### NuGet을 사용하여 설치하세요
Install-Package IronPdf.Extensions.Blazor

Blazor Server에서 Razor 컴포넌트를 PDF로 렌더링하는 방법은 무엇인가요?

Razor 컴포넌트를 PDF로 변환하려면 Blazor 서버 앱 프로젝트가 필요합니다. Blazor Server 애플리케이션은 서버에서 실행되고 SignalR 연결을 통해 UI 업데이트를 렌더링하므로 서버 측 처리가 필요한 PDF 생성에 적합합니다. 이 아키텍처는 PDF 렌더링이 서버에서 이루어지도록 보장하여 클라이언트 브라우저나 장치에 관계없이 일관된 결과를 제공합니다.

시작하기 전에 .NET SDK와 ASP.NET 및 웹 개발 워크로드가 포함된 Visual Studio 2019 이상이 설치되어 있는지 확인하십시오. Visual Studio의 프로젝트 템플릿을 사용하거나 .NET CLI를 사용하여 dotnet new blazorserver를 통해 새 Blazor 서버 앱을 생성합니다. 자세한 설치 지침 및 플랫폼별 요구 사항은 설치 개요를 참조하십시오.

어떤 모델 클래스 구조를 사용해야 할까요?

PersonInfo 라는 이름의 표준 C# 클래스를 추가합니다. 이 클래스는 개인 정보를 저장하기 위한 모델 역할을 합니다. 다음 코드를 삽입하세요:

:path=/static-assets/pdf/content-code-examples/how-to/razor-to-pdf-blazor-server-model.cs
namespace BlazorSample.Data
{
    public class PersonInfo
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
$vbLabelText   $csharpLabel

이 모델은 Razor 컴포넌트에 전달되어 PDF에 렌더링되는 데이터 구조를 나타냅니다. IronPDF는 간단한 POCO부터 복잡한 엔티티 프레임워크 모델에 이르기까지 모든 C# 객체 모델과 호환됩니다. PDF 생성 모델을 설계할 때는 최종 문서에 데이터가 어떻게 표시될지 고려하고 그에 따라 속성을 구성해야 합니다.

Razor 컴포넌트를 사용하여 PDF를 생성하는 방법은 무엇인가요?

Razor 컴포넌트를 PDF로 변환하려면 RenderRazorComponentToPdf 메서드를 사용하십시오. ChromePdfRenderer 클래스를 인스턴스화하여 이 메서드에 접근하세요. 이 메서드는 내보내기 또는 추가 수정을 위해 PdfDocument 객체를 반환합니다.

반환된 PdfDocument는 PDF/A 또는 PDF/UA 형식으로 변환하는 것을 포함한 추가 수정 기능을 지원합니다. 문서를 병합하거나 분할하고 , 페이지를 회전하고, 주석 이나 책갈피를 추가할 수 있습니다. 필요에 따라 사용자 지정 워터마크를 적용하세요.

Person.razor 라는 이름의 Razor 컴포넌트를 추가합니다. 다음 코드를 입력하세요:

@page "/Person"
@using BlazorSample.Data;
@using IronPdf;
@using IronPdf.Extensions.Blazor;

<h3>Person</h3>

@code {
    // A parameter to receive a list of persons from the parent component.
    [Parameter]
    public IEnumerable<PersonInfo> persons { get; set; }

    // Dictionary to hold parameters that will be passed to the PDF renderer.
    public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();

    protected override async Task OnInitializedAsync()
    {
        // Initialize the persons list with some sample data.
        persons = new List<PersonInfo>
        {
            new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
            new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
            new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
        };
    }

    private async void PrintToPdf()
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Apply text footer to the PDF pages.
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} - {time}",
            DrawDividerLine = true,
            RightText = "Page {page} of {total-pages}",
            Font = IronSoftware.Drawing.FontTypes.Arial,
            FontSize = 11
        };

        Parameters.Add("persons", persons);

        // Render Razor component to PDF and save it.
        PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
        File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
    }
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in persons)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<button class="btn btn-primary" @onclick="PrintToPdf">Print to Pdf</button>

이 방법을 사용하면 모든 RenderingOptions 기능에 액세스할 수 있습니다. 텍스트와 HTML 머리글 및 바닥글을 추가하고, 페이지 번호를 포함하며, 페이지 크기와 레이아웃을 조정합니다. RenderingOptions사용자 지정 여백 , 반응형 디자인을 위한 뷰포트 설정, 동적 콘텐츠에 대한 JavaScript 실행 지연을 지원합니다.

복잡한 레이아웃이나 Bootstrap과 같은 CSS 프레임워크를 사용하는 경우, 다양한 페이지 크기에서 PDF가 올바르게 표시되도록 반응형 CSS 렌더링 기능을 살펴보세요.

Razor 컴포넌트에 내비게이션 기능을 추가하려면 어떻게 해야 하나요?

  • "공유 폴더"로 이동하여 NavMenu.razor를 엽니다. Razor 컴포넌트를 열 수 있는 섹션을 추가하세요. Person. 저희 Person 컴포넌트가 두 번째 옵션이 될 것입니다.
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="Person">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Person
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="counter">
                <span class="oi oi-plus" aria-hidden="true"></span> Counter
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="fetchdata">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
            </NavLink>
        </div>
    </nav>
</div>

이 탐색 설정은 Blazor의 라우팅 시스템과 통합되어 사용자가 애플리케이션의 기본 탐색 메뉴에서 PDF 생성 기능에 액세스할 수 있도록 합니다. NavLink 구성 요소는 활성 경로를 올바르게 강조 표시합니다.

PDF 생성 과정은 어떻게 진행되나요?

프로젝트를 실행하고 PDF 문서를 생성하세요. "PDF로 인쇄" 버튼을 클릭하세요. IronPDF는 Razor 컴포넌트를 처리하고 HTML로 변환한 다음, Chrome 기반 렌더링 엔진을 사용하여 PDF로 렌더링합니다. 이를 통해 최신 웹 브라우저에서와 동일한 시각적 품질을 유지합니다.

Visual Studio debugging Blazor app with PDF generation code using ChromePdfRenderer and Razor components

생성된 PDF 파일은 프로젝트의 출력 디렉토리에 저장됩니다. 저장 위치를 사용자 지정하거나, 브라우저에서 직접 다운로드할 수 있도록 하거나, Azure Blob Storage와 같은 클라우드 스토리지에 PDF를 저장할 수 있습니다. 실제 운영 환경에서는 PDF 생성이 실패하거나 예상 소요 시간을 초과하는 상황에 대비하여 오류 처리 및 사용자 피드백 기능을 구현해야 합니다.

완벽하게 작동하는 예제 파일을 어디에서 다운로드할 수 있나요?

이 가이드의 전체 코드를 압축 파일로 다운로드하세요. Visual Studio에서 Blazor 서버 앱 프로젝트로 엽니다. 이 샘플에는 Blazor 애플리케이션에서 Razor를 PDF로 변환하는 데 필요한 모든 종속성, 구성 및 예제 코드가 포함되어 있어 바로 시작할 수 있습니다.

Razor를 PDF로 변환하는 Blazor 샘플 프로젝트를 다운로드하세요.

당신이 할 수 있는 다른 일들을 알아볼 준비가 되셨나요? PDF 변환 방법에 대한 튜토리얼 페이지는 여기에서 확인하세요.

보다 고급 시나리오에 대해서는 Blazor 애플리케이션에서 IronPDF를 사용하는 추가 통합 패턴 및 모범 사례를 다루는 Blazor 튜토리얼 을 참조하십시오.

자주 묻는 질문

Blazor Server에서 Razor 컴포넌트를 PDF로 변환하는 가장 빠른 방법은 무엇인가요?

가장 빠른 방법은 IronPDF의 RenderRazorComponentToPdf 메서드를 사용하는 것입니다. 단 한 줄의 코드로 모든 Razor 컴포넌트를 PDF로 변환할 수 있습니다. 예: var pdf = new IronPdf.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");

Blazor Server에서 Razor를 PDF로 변환하는 데 필요한 NuGet 패키지는 무엇입니까?

IronPdf.Extensions.Blazor 패키지가 필요하며, 이 패키지에는 핵심 IronPDF 라이브러리가 종속성으로 자동으로 포함됩니다. 다음 명령어를 사용하여 설치하세요: Install-Package IronPdf.Extensions.Blazor

Razor 컴포넌트를 PDF로 변환할 때 사용자 지정 머리글과 바닥글을 추가할 수 있나요?

예, IronPDF는 RenderRazorComponentToPdf 메서드를 사용하여 Razor 컴포넌트를 PDF로 변환할 때 머리글, 바닥글 및 페이지 서식에 대한 모든 사용자 지정 옵션을 제공합니다.

Razor 컴포넌트를 이용한 PDF 생성에 Blazor Server를 권장하는 이유는 무엇인가요?

Blazor Server 애플리케이션은 서버에서 실행되고 SignalR 연결을 통해 UI 업데이트를 렌더링하므로 PDF 생성에 이상적입니다. 이러한 아키텍처 덕분에 IronPDF의 렌더링은 서버 측에서 이루어지므로 클라이언트 브라우저나 장치에 관계없이 일관된 결과를 제공합니다.

기존 Razor 컴포넌트를 PDF로 변환하려면 리팩토링이 필요한가요?

아니요, IronPdf.Extensions.Blazor 패키지를 사용하면 대대적인 코드 수정 없이 기존 Razor 컴포넌트를 PDF로 변환할 수 있습니다. 이 확장 프로그램은 Blazor의 컴포넌트 모델을 이해하는 통합 지점을 제공합니다.

PDF로 변환할 때 Razor 컴포넌트로 데이터를 전달하려면 어떻게 해야 하나요?

RenderRazorComponentToPdf 메서드에서 Dictionary 매개변수를 사용하여 데이터를 전달할 수 있습니다. 예를 들어, 다음과 같습니다. new Dictionary { {"persons", personsList} } 여기서 "persons"는 매개변수 이름이고 personsList는 전달할 데이터입니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 17,527,568 | 버전: 2026.2 방금 출시되었습니다