
C# 개발자를 위한 IronPDF와 ChatGPT 사용법
보고서는 데이터를 구조적이고 시각적으로 매력적인 형식으로 제시하는 데 필수적입니다. 판매 데이터, 분석 또는 재무 요약 등 보고서 생성은 웹 어플리케이션에서 일반적인 요구 사항입니다. Microsoft는 RDLC 보고서 서비스를 제공하며, 웹 폼 리포트 뷰어 컨트롤을 사용하여 웹 애플리케이션에 통합할 수 있습니다. 하지만 이 과정은 종종 복잡하고 시간이 많이 걸립니다.
이때 IronPDF가 등장합니다. IronPDF는 ASP.NET 및 기타 웹 프레임워크에서 PDF 보고서 생성을 단순화하는 다재다능한 라이브러리로, 강력한 기능과 사용의 용이성을 제공합니다. 이 기사에서는 IronPDF를 사용하여 ASP.NET에서 보고서를 생성하는 방법을 탐구할 것입니다.
ASP.NET에서 보고서 생성하는 방법
- Visual Studio를 사용하여 ASP.NET 웹 앱을 만듭니다. IronPDF 및 IronPdf.Extensions.MVC.Core를 설치합니다. ChromePdfRenderer 개체 발송자를 인스턴스화합니다. 강조된 보기에서 RenderRazorViewToPdf 메서드를 호출하여 PDF로 변환합니다. Response.Headers.Append를 사용하여 "Content-Disposition"을 추가합니다. File 메서드와 PDF.BinaryData를 사용하여 보고서를 생성합니다.
IronPDF 소개
IronPDF는 ASP.NET 및 기타 웹 프레임워크에서 PDF 문서 생성을 단순화하는 다재다능한 라이브러리입니다. 풍부한 기능 세트와 직관적인 API를 제공하여 개발자가 동적 보고서, 송장, 영수증 등을 직접 웹 애플리케이션에서 생성하는데 이상적인 선택입니다. IronPDF를 사용하면 개발자는 HTML, CSS 및 심지어 Razor 보기를 고품질의 PDF 문서로 쉽게 변환하여 ASP.NET 프로젝트에 보고 기능을 원활하게 통합할 수 있습니다.
IronPDF 의 특징
- HTML을 PDF로 변환: CSS 스타일을 포함한 HTML 콘텐츠를 쉽게 고품질 PDF 문서로 변환할 수 있습니다.
- PDF 편집: 기존 PDF 문서에 텍스트, 이미지 및 주석을 추가하거나 제거하여 수정할 수 있습니다.
- PDF 양식 채우기: 웹 애플리케이션의 데이터로 PDF 양식을 동적으로 채울 수 있습니다.
- 바코드 생성: 제품 라벨이나 재고 추적을 위해 PDF 문서 내에서 바코드 및 QR 코드를 생성할 수 있습니다.
- 워터마크 추가: 민감한 정보 보호나 브랜드 문서를 위해 PDF 페이지에 워터마크를 추가할 수 있습니다.
- 암호화 및 보안: 암호화, 비밀번호 및 권한 설정으로 PDF 문서를 보호할 수 있습니다.
필수 조건
시작하기 전에 다음 요건을 확인하십시오:
- ASP.NET 개발에 대한 기본 지식.
- Visual Studio가 컴퓨터에 설치되어 있습니다.
- IronPDF 및 IronPdf.Extensions.Mvc.Core
Visual Studio에서 ASP.NET 프로젝트 생성 단계
-
Visual Studio를 열고 새로운 ASP.NET Core 프로젝트를 생성하십시오.
-
원하는 프로젝트 템플릿을 선택하십시오 (예: MVC 또는 Razor 페이지).

-
프로젝트 이름, 위치, 프레임워크 버전과 같은 프로젝트 설정을 구성하세요.

-
"생성"을 클릭하여 프로젝트 구조를 만듭니다.
IronPDF 및 IronPdf.Extensions.Mvc.Core 설치하기
다음으로, NuGet 패키지 관리자를 사용하여 IronPDF 및 해당 MVC 확장 패키지를 설치해 봅시다.
솔루션 탐색기를 마우스 오른쪽 버튼으로 클릭하여 솔루션용 NuGet 패키지 관리자를 엽니다. "IronPDF" 및 "IronPdf.Extensions.Mvc.Core"을 검색합니다.

두 패키지를 솔루션에 설치합니다.
ASP.NET 웹 애플리케이션에서 보고서 뷰어를 만드는 단계
이제 IronPDF를 사용하여 ASP.NET 프로젝트에서 PDF 보고서를 생성하는 단계를 알아보겠습니다. 뷰를 보고서로 변환하기 전에 새 PDF 형식의 보고서를 생성하고 다운로드하기 위한 데이터 소스를 만들기 위한 모델, 뷰 및 컨트롤러가 필요합니다.
1단계: 모델 클래스 정의
먼저 판매 데이터를 나타내기 위한 모델 클래스(SalesModel.cs)를 만듭니다. 이 샘플 SalesModel 클래스에는 날짜, 제품 이름, 수량, 단가 및 총 금액과 같은 속성이 포함됩니다. Microsoft SQL Server 또는 MySQL Server와 같은 데이터 소스에서 정보를 검색할 때 유용합니다.
namespace ReportGenerator.Models
{
public class SalesModel
{
public DateTime Date { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalAmount => Quantity * UnitPrice;
}
}Namespace ReportGenerator.Models
Public Class SalesModel
Public Property [Date]() As DateTime
Public Property ProductName() As String
Public Property Quantity() As Integer
Public Property UnitPrice() As Decimal
Public ReadOnly Property TotalAmount() As Decimal
Get
Return Quantity * UnitPrice
End Get
End Property
End Class
End Namespace2단계: 새 웹 폼 뷰 생성
다음으로, 판매 데이터를 표 형식으로 표시하고 PDF 보고서를 생성할 수 있는 버튼을 제공하기 위한 Razor 뷰(Sales.cshtml)를 만듭니다.
<!-- Sales.cshtml -->
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
<title>Sales Report</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2>Sales Report</h2>
<table>
<tr>
<th>Date</th>
<th>Product Name</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total Amount</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Date.ToShortDateString()</td>
<td>@item.ProductName</td>
<td>@item.Quantity</td>
<td>@item.UnitPrice.ToString("C")</td>
<td>@item.TotalAmount.ToString("C")</td>
</tr>
}
</table>
<br />
@using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
{
<button type="submit">Generate PDF Report</button>
}
</body>
</html>
이제 Views->Shared 폴더에 있는 _Layout.cshtml 파일에 Sales를 메뉴 항목으로 추가하여 보고서 마법사 보기를 만듭니다:
<!— Layout.cshtml —>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>

3단계: 뷰 렌더 서비스 등록
Program.cs 파일에 뷰 렌더 서비스를 등록하는 것은 종속성 주입이 제대로 작동하기 위해 필수입니다. Program.cs 파일에 다음 코드를 추가하여 IRazorViewRenderer 서비스를 등록합니다:
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();' Register the IRazorViewRenderer service
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()4단계: 웹 API 컨트롤러 클래스 구현
판매 뷰를 렌더링하고 PDF 보고서를 생성할 수 있는 작업을 가진 컨트롤러(SalesController.cs)를 구현합니다. IronPDF가 제공하는 IRazorViewRenderer 서비스를 컨트롤러 생성자에 주입합니다.
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
public class SalesController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
private readonly List<SalesModel> salesData;
public SalesController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
// Example data with sales information
salesData = new List<SalesModel>
{
new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
// Add more data as needed
};
}
public IActionResult Sales()
{
// Renders the sales view with the sales data
return View(salesData);
}
}
}Imports ReportGenerator.Models
Namespace ReportGenerator.Controllers
Public Class SalesController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
Private ReadOnly salesData As List(Of SalesModel)
Public Sub New(viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
' Example data with sales information
salesData = New List(Of SalesModel) From {
New SalesModel With {.Date = DateTime.Parse("2024-03-01"), .ProductName = "Product A", .Quantity = 10, .UnitPrice = 50.0D},
New SalesModel With {.Date = DateTime.Parse("2024-03-02"), .ProductName = "Product B", .Quantity = 15, .UnitPrice = 40.0D},
New SalesModel With {.Date = DateTime.Parse("2024-03-03"), .ProductName = "Product C", .Quantity = 20, .UnitPrice = 30.0D}
' Add more data as needed
}
End Sub
Public Function Sales() As IActionResult
' Renders the sales view with the sales data
Return View(salesData)
End Function
End Class
End Namespace위 코드에서 생성자 내부에서 IRazorViewRenderer 서비스가 개인 필드 _viewRenderService에 할당됩니다. 또한, 컨트롤러는 데모 목적으로 판매 정보를 나타내는 SalesModel 클래스의 인스턴스를 포함하는 salesData라는 리스트를 초기화합니다.
Sales() 작업 메서드는 salesData 리스트를 모델로 전달하여 "Sales"라는 이름의 뷰를 반환합니다. 이 작업은 사용자가 표 형식 또는 다른 원하는 레이아웃으로 판매 정보를 시각화할 수 있도록 관련 뷰에서 판매 데이터를 렌더링합니다.

5단계: PDF 보고서 생성
컨트롤러의 GeneratePdf 작업에서 IronPDF의 ChromePdfRenderer를 사용하여 Razor 뷰를 PDF 보고서 문서로 렌더링합니다. 적절한 응답 헤더를 설정하고 클라이언트에게 PDF 파일을 반환합니다.
public FileContentResult GeneratePdf()
{
// Set license key for IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Initialize the ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the Sales Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
// Set HTTP response header to display the PDF inline
Response.Headers.Append("Content-Disposition", "inline");
// Return the PDF document as a FileContentResult
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}Public Function GeneratePdf() As FileContentResult
' Set license key for IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
' Initialize the ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the Sales Razor view to a PDF document
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData)
' Set HTTP response header to display the PDF inline
Response.Headers.Append("Content-Disposition", "inline")
' Return the PDF document as a FileContentResult
Return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf")
End Function위 코드의 작동을 자세히 이해해 봅시다:
- 라이선스 키 설정:
- License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
- 이 라인은 IronPDF의 라이센스 키를 설정합니다. 이는 애플리케이션 내에서 IronPDF 기능을 사용하기 위해 필수적입니다.
- 렌더러 초기화:
- ChromePdfRenderer renderer = new ChromePdfRenderer();
- ChromePdfRenderer의 인스턴스가 생성됩니다. 이 렌더러는 Chromium 브라우저 엔진을 사용하여 Razor 뷰를 PDF 형식으로 변환하는 역할을 합니다.
- 뷰를 PDF로 렌더링:
- PdfDocument PDF = renderer.RenderRazorViewToPDF(_viewRenderService, "Views/영업/영업.cshtml", 영업데이터);
- ChromePdfRenderer의
RenderRazorViewToPdf()메서드가 지정된 Razor 뷰(Views/Sales/Sales.cshtml)를 PDF 문서로 렌더링하기 위해 호출됩니다. 뷰의 모델로 salesData 변수가 사용됩니다.
- Content-Disposition 헤더:
Response.Headers.Append("Content-Disposition", "inline");- HTTP 응답 헤더 Content-Disposition가 **"inline"**으로 설정됩니다. 이는 브라우저가 PDF 내용을 직접 브라우저 창 또는 탭에서 보고서를 확인할 수 있도록 지시합니다.
- PDF 파일 반환:
- return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
- PDF 문서 내용이 FileContentResult로 반환됩니다. PDF(pdf.BinaryData)의 바이너리 데이터를 포함하고 MIME 유형을 **"application/pdf"**로 지정하며 파일명을 **"SalesReport.pdf"**로 제안합니다.
전반적으로 이 메서드는 Razor 뷰에서 PDF 보고서를 생성하는 과정을 효율적으로 조정하여 ASP.NET 애플리케이션에 통합하여 보고 기능을 향상시키기에 적합합니다.

IronPDF가 PDF 보고서 생성 과정 및 기타 PDF 관련 작업을 어떻게 용이하게 하는지에 대한 자세한 정보는 문서 페이지를 방문하십시오.
결론
본 기사에서는 IronPDF가 ASP.NET 응용 프로그램에서 PDF 보고서 생성 과정을 어떻게 간단하게 만드는지 알아보았습니다. 위 단계별 가이드를 따라, IronPDF를 ASP.NET 프로젝트에 신속하게 통합하고 동적 PDF 보고서를 손쉽게 생성할 수 있습니다.
풍부한 기능 세트와 원활한 통합을 통해 IronPDF는 개발자가 사용자 및 비즈니스의 요구를 충족하는 전문 품질의 보고서를 작성할 수 있도록 지원합니다.

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


