C#에서 Razor 뷰의 헤드리스 PDF 변환 방법
C#에서 Razor.Templating.Core를 사용하여 cshtml 파일을 HTML로 변환한 다음, GUI 또는 브라우저 창이 필요 없이 IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 PDF 문서를 생성하여 Razor Views를 PDF로 변환하세요.
헤드리스 렌더링은 그래픽 사용자 인터페이스 없이 웹 콘텐츠를 처리합니다. IronPdf.Extensions. Razor 는 유용하지만 헤드리스 렌더링 기능이 부족합니다. 이 가이드는 그러한 공백을 메웁니다.
Razor.Templating.Core를 사용하여 cshtml을 HTML로 변환한 다음 IronPDF 사용하여 PDF를 생성합니다.
빠른 시작: Razor 뷰를 몇 초 만에 PDF로 변환
IronPDF의 헤드리스 변환 기능을 사용하여 Razor 뷰를 PDF로 변환하세요. 타사에서 HTML을 PDF로 렌더링하기 위해 IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdf를 사용하세요. 이 접근 방식은 ASP.NET Core 환경에서 완벽하게 작동합니다.
-
NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPdf 설치하기
PM > Install-Package IronPdf -
다음 코드 조각을 복사하여 실행하세요.
var html = await RazorTemplateEngine.RenderAsync("Views/Template.cshtml", model); new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs("output.pdf"); -
실제 운영 환경에서 테스트할 수 있도록 배포하세요.
무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
최소 워크플로우(5단계)
- ASP.NET Core 웹 앱에서 Razor 뷰를 PDF로 변환하는 C# 라이브러리를 다운로드하세요.
- 새로운 Razor 뷰를 생성하고 파일을 편집하여 데이터를 표시하세요.
- `RenderAsync` 메서드를 사용하여 Razor View를 HTML로 변환합니다.
- `RenderHtmlAsPdf` 메서드를 사용하여 HTML을 PDF로 변환합니다.
- 빠른 시작을 위해 샘플 프로젝트를 다운로드하세요.
ASP.NET Core 웹 앱에서 Razor 뷰를 HTML로 변환하려면 Razor 를 설치하세요.
# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
Razor 사용하여 ASP.NET Core 프로젝트를 PDF로 변환하려면 어떻게 설정해야 하나요?
뷰를 PDF로 변환하려면 ASP.NET Core 웹 앱(모델-뷰-컨트롤러) 프로젝트가 필요합니다. 설정 과정에는 Visual Studio에서 프로젝트를 생성하고, NuGet 패키지를 설치하고, 프로젝트 구조를 구성하는 작업이 포함됩니다. 유사한 기법에 대해서는 MVC Core에서 CSHTML을 PDF로 변환 하거나 Razor Pages를 사용하여 CSHTML을 PDF로 변환하는 방법을 참조하세요.
IronPDF 대신 Razor Razor 이유는 무엇인가요?
Razor.Templating.Core는 웹 컨텍스트나 브라우저 창 없이 Razor 뷰를 HTML로 변환하는 진정한 헤드리스 렌더링을 제공합니다. 이는 백그라운드 서비스, 콘솔 애플리케이션 또는 사용자 인터페이스가 없는 환경에 적합합니다. IronPdf.Extensions. Razor 작동하려면 웹 컨텍스트가 필요합니다.
헤드리스 PDF 생성에 가장 적합한 프로젝트 유형은 무엇인가요?
ASP.NET Core 웹 앱(모델-뷰-컨트롤러) 프로젝트는 유연한 배포 옵션과 함께 필요한 Razor 뷰 인프라를 제공합니다. 이 접근 방식을 백그라운드 서비스, Azure Functions 또는 콘솔 애플리케이션에서 사용하세요. 클라우드 기반 생성을 위해 IronPDF Azure에 배포하는 방법을 참조하세요.
필요한 NuGet 패키지를 어떻게 설치하나요?
NuGet 패키지 관리자를 사용하여 패키지를 설치하세요. IronPDF 와 Razor 가 필요합니다.
// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core
// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core
// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
' Install via Package Manager Console
' Install-Package IronPdf
' Install-Package Razor.Templating.Core
' Or add to your .vbproj file
' <PackageReference Include="IronPdf" Version="2024.x.x" />
' <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
PDF 생성을 위한 Razor 뷰를 만들고 구성하는 방법은 무엇인가요?
- "홈" 폴더를 마우스 오른쪽 버튼으로 클릭합니다. "추가"를 선택한 다음 "뷰 추가"를 선택하세요.
- "Data.cshtml"이라는 이름의 빈 Razor 뷰를 생성합니다.
Razor 뷰에 어떤 HTML 콘텐츠를 추가해야 할까요?
PDF로 렌더링할 HTML 코드를 추가하세요:
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
<tr>
<td>John Doe</td>
<td>Software Engineer</td>
<td>Experienced software engineer specializing in web development.</td>
</tr>
<tr>
<td>Alice Smith</td>
<td>Project Manager</td>
<td>Seasoned project manager with expertise in agile methodologies.</td>
</tr>
<tr>
<td>Michael Johnson</td>
<td>Data Analyst</td>
<td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
</tr>
</table>
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
<tr>
<td>John Doe</td>
<td>Software Engineer</td>
<td>Experienced software engineer specializing in web development.</td>
</tr>
<tr>
<td>Alice Smith</td>
<td>Project Manager</td>
<td>Seasoned project manager with expertise in agile methodologies.</td>
</tr>
<tr>
<td>Michael Johnson</td>
<td>Data Analyst</td>
<td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
</tr>
</table>
복잡한 레이아웃의 경우, CSS와 인쇄 스타일을 사용하여 완벽한 PDF 렌더링을 보장하십시오. IronPDF 정교한 문서 레이아웃을 위한 최신 CSS3 기능을 지원합니다.
PDF 데이터 표시에 표를 사용하는 이유는 무엇일까요?
표는 구조화되고 정리된 정보를 제공하여 인쇄물에 적용하기에 적합합니다. 이 파일들은 플랫폼 전반에 걸쳐 일관된 형식을 유지하며 PDF 형식으로 읽을 수 있습니다. IronPDF의 렌더링 엔진은 테두리, 간격 및 정렬을 유지하여 표 레이아웃을 잘 처리합니다. 고급 서식 지정을 위해서는 사용자 지정 여백을 활용하여 레이아웃을 최적화해 보세요.
PDF 출력 시 일반적인 스타일링 고려 사항은 무엇입니까?
PDF 출력 시에는 인쇄 전용 CSS 미디어 쿼리, 상대 단위 대신 고정 픽셀 값, 그리고 내장 글꼴을 사용하여 일관된 렌더링을 구현하십시오. IronPDF 브랜드 일관성을 위해 웹 폰트와 아이콘 폰트를 지원합니다. 여러 페이지로 구성된 문서의 경우 페이지 나누기를 고려하고, 전문적인 외관을 위해 적절한 여백을 설정하십시오.
헤드리스 PDF 렌더링을 위해 Program.cs를 어떻게 구성해야 하나요?
"Program.cs" 파일에 다음 코드를 추가하세요. Razor.Templating.Core의 RenderAsync를 사용하여 Razor Views를 HTML로 변환한 다음, ChromePdfRenderer를 인스턴스화하고 HTML을 RenderHtmlAsPdf에 전달합니다. 맞춤형 텍스트, 헤더, 푸터, 여백 및 페이지 번호를 위해 RenderingOptions를 사용하세요.
app.MapGet("/PrintPdf", async () =>
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Enable detailed logging for troubleshooting
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
// Render the Razor view to an HTML string
string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
// Create a new instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Configure rendering options for professional output
renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Render the HTML string as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
// Return the PDF file as a response
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Enable detailed logging for troubleshooting
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
// Render the Razor view to an HTML string
string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
// Create a new instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Configure rendering options for professional output
renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Render the HTML string as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
// Return the PDF file as a response
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
Imports IronPdf
Imports Microsoft.AspNetCore.Builder
app.MapGet("/PrintPdf", Async Function()
' Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Enable detailed logging for troubleshooting
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
' Render the Razor view to an HTML string
Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")
' Create a new instance of ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Configure rendering options for professional output
renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
' Render the HTML string as a PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot")
' Return the PDF file as a response
Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
End Function)
PDF에 적용할 수 있는 렌더링 옵션은 무엇인가요?
IronPDF 다양한 렌더링 옵션을 제공합니다. 머리글과 바닥글을 추가하고, 사용자 지정 용지 크기를 설정하고, 페이지 방향을 제어하고, 워터마크를 추가할 수 있습니다. ChromePdfRenderer는 PDF 생성을 사용자 정의할 수 있는 50개 이상의 속성을 제공합니다.
PDF 생성 중 발생하는 오류는 어떻게 처리해야 하나요?
안정적인 PDF 생성을 위해 오류 처리를 구현하십시오.
try
{
var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
}
catch (Exception ex)
{
// Log the error details
IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}");
return Results.Problem("Failed to generate PDF", statusCode: 500);
}
try
{
var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
}
catch (Exception ex)
{
// Log the error details
IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}");
return Results.Problem("Failed to generate PDF", statusCode: 500);
}
Imports IronPdf
Imports System.Threading.Tasks
Public Class PdfGenerator
Public Shared Async Function GeneratePdfAsync() As Task(Of IResult)
Try
Dim html = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot")
Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
Catch ex As Exception
' Log the error details
IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}")
Return Results.Problem("Failed to generate PDF", statusCode:=500)
End Try
End Function
End Class
상세 로깅은 언제 활성화해야 할까요?
개발 및 문제 해결 중에 상세 로깅을 활성화하십시오. IronPDF의 로깅은 렌더링에 대한 통찰력을 제공하여 HTML 구문 분석, 자산 로딩 또는 구성 문제를 식별하는 데 도움이 됩니다. 실제 운영 환경에서는 애플리케이션의 로깅 인프라와 통합하기 위해 사용자 지정 로깅을 사용하십시오.
에셋 링크 경로를 수정해야 하는 이유는 무엇인가요?
Views > Shared > "_Layout.cshtml"로 이동하세요. 링크 태그에서 "~/"를 "./"로 변경하세요. 왜냐하면 "~/"는 IronPDF와 잘 작동하지 않기 때문입니다.
경로와 관련된 다른 어떤 문제들을 주의해야 할까요?
물결표(~) 경로 문제 외에도 이미지 소스가 절대 경로 또는 적절한 상대 경로를 사용하는지 확인하십시오. 외부 리소스의 경우, 자산이 올바르게 로드되도록 기본 URL을 사용하십시오. Azure Blob Storage 이미지에 대한 자세한 내용은 Azure Blob Storage에서 이미지 포함하기를 참조하세요.
정적 자산은 PDF 생성에 어떤 영향을 미칠까요?
정적 자산(CSS, JavaScript, 이미지)은 PDF 생성 성능 및 품질에 영향을 미칩니다. 렌더링 중에 자산에 접근할 수 있도록 하고, 최적화된 이미지를 사용하며, 렌더링 속도를 높이기 위해 중요한 CSS를 인라인으로 포함하는 것을 고려하십시오. JavaScript 사용량이 많은 콘텐츠의 렌더링 지연 및 시간 초과 에 대해 알아보세요.
헤드리스 PDF 생성 기능을 어떻게 테스트하나요?
프로젝트를 실행하여 PDF 문서를 생성하세요.
PDF 출력
최종 PDF 파일은 어떤 모양이어야 할까요?
PDF 파일은 Razor View의 모든 서식(표 구조, 글꼴, 색상 및 레이아웃)을 유지해야 합니다. 크기는 적절해야 하고, 여백은 깔끔해야 하며, 전문적인 느낌을 주어야 합니다. 출력 품질을 확인하려면 IronPDF의 래스터화 기능을 사용하여 페이지를 이미지로 미리 보십시오.
PDF 렌더링 시 발생하는 일반적인 문제를 어떻게 해결할 수 있나요?
흔히 발생하는 문제로는 스타일 누락, 레이아웃 오류 또는 불완전한 콘텐츠 등이 있습니다. 상세 로깅을 활성화하고, 자산 경로를 확인하고, HTML 유효성 검사가 제대로 작동하는지 확인하십시오. 복잡한 레이아웃의 경우, 변환하기 전에 Chrome 디버깅 도구를 사용하여 HTML을 미리 보세요. 특정 렌더링 문제가 발생하는 경우, 콘텐츠가 렌더링 전에 로드되도록 WaitFor 지연을 사용하십시오.
완벽하게 작동하는 예제 파일을 어디에서 다운로드할 수 있나요?
전체 코드를 압축된 Visual Studio ASP.NET Core 웹 앱(모델-뷰-컨트롤러) 프로젝트 파일로 다운로드하세요.
샘플 프로젝트를 실행하기 위한 필수 조건은 무엇입니까?
Visual Studio 2019 이상 버전과 .NET 6.0 SDK 이상이 필요합니다. 이 프로젝트는 NuGet 패키지 복원을 위해 인터넷 연결이 필요합니다. 실행하기 전에 Program.cs 파일에서 IronPDF 라이선스 키를 업데이트하십시오. 배포를 위해서는 Windows 설치 가이드를 참조하여 추가 요구 사항을 확인하십시오.
내 사용 사례에 맞게 샘플을 어떻게 사용자 지정할 수 있나요?
이 샘플은 귀하의 특정 요구 사항을 충족하는 데 필요한 기초 자료를 제공합니다. 동적 데이터 모델을 추가하거나, 자주 생성되는 PDF 파일에 대한 캐싱을 구현하거나, 기존 인증 시스템과 통합할 수 있습니다. 고급 시나리오의 경우, 성능 향상을 위해 비동기 PDF 생성을 살펴보거나 파일 크기를 줄이기 위해 PDF 압축을 구현해 보세요. 문서 진위 확인을 위해 디지털 서명을 추가하거나 중요한 문서에 암호 보호 기능을 적용하세요.
자주 묻는 질문
C#에서 GUI 없이 Razor 뷰를 PDF로 변환하는 방법은 무엇인가요?
Razor.Templating.Core를 사용하여 cshtml 파일을 HTML로 변환한 다음, IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 헤드리스 방식으로 PDF를 생성합니다. 이 두 단계 프로세스를 통해 그래픽 사용자 인터페이스나 브라우저 창 없이 Razor 뷰를 PDF 문서로 변환할 수 있습니다.
Razor 뷰를 헤드리스 모드로 PDF에 렌더링하는 가장 빠른 방법은 무엇인가요?
가장 빠른 방법은 두 줄의 코드를 사용하는 것입니다. 먼저 RazorTemplateEngine.RenderAsync를 사용하여 Razor 뷰를 HTML로 변환한 다음, IronPDF의 ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs() 메서드를 사용하여 PDF 파일을 생성하고 저장합니다.
IronPDF.Extensions.Razor 대신 Razor.Templating.Core를 사용해야 하는 이유는 무엇인가요?
Razor.Templating.Core는 웹 컨텍스트나 브라우저 창 없이도 Razor 뷰를 HTML로 변환할 수 있는 진정한 헤드리스 렌더링 기능을 제공합니다. IronPDF.Extensions.Razor도 유용하지만, 작동하려면 웹 컨텍스트가 필요하므로 Razor.Templating.Core는 백그라운드 서비스 및 콘솔 애플리케이션에 더 적합합니다.
헤드리스 PDF 생성을 위해 어떤 유형의 ASP.NET Core 프로젝트가 필요합니까?
ASP.NET Core 웹 앱(모델-뷰-컨트롤러) 프로젝트를 사용하세요. 이 프로젝트는 유연한 배포 옵션과 함께 필요한 Razor 뷰 인프라를 제공합니다. 이 설정은 백그라운드 서비스, Azure Functions 또는 콘솔 애플리케이션을 위한 IronPDF와 잘 작동합니다.
Razor를 PDF로 변환하는 데 필요한 패키지를 어떻게 설치하나요?
NuGet 패키지 관리자에서 'Install-Package Razor.Templating.Core' 명령어를 사용하여 Razor.Templating.Core를 설치하세요. 또한 HTML을 PDF로 변환하는 단계를 처리하기 위해 프로젝트에 IronPDF가 설치되어 있어야 합니다.
클라우드 환경에서 이러한 헤드리스 PDF 생성 방식을 사용할 수 있습니까?
네, IronPDF의 헤드리스 Razor-PDF 변환 기능은 Azure Functions, AWS Lambda 및 컨테이너화된 애플리케이션을 포함한 클라우드 환경에서 탁월하게 작동하므로 확장 가능한 문서 생성 서비스에 이상적입니다.

