ASP.NET Core에서 C#으로 HTML을 PDF로 변환하기 - IronPDF 가이드
IronPDF는 Chrome 기반 렌더링 엔진을 사용하여 ASP.NET에서 HTML을 PDF로 변환하여 몇 줄의 C# 코드만으로 HTML 문자열, 파일 또는 URL을 픽셀 단위로 정확한 PDF 문서로 변환합니다.
ASP.NET 응용 프로그램이 인보이스, 보고서 또는 규정 준수 문서를 요청 시 생성해야 할 때 PDF 출력의 품질이 중요합니다. 최종 사용자는 CSS 스타일링, 사용자 정의 글꼴 및 테이블 레이아웃을 포함하여 원본 HTML과 정확히 같은 형식의 출력을 기대합니다. 도전 과제는 현대 CSS 또는 JavaScript가 가득한 콘텐츠에 대한 복잡한 우회가 필요하지 않은 이 변환을 처리하는 라이브러리를 찾는 것입니다.
IronPDF는 이 도전에 맞추어 제작된 C# PDF 라이브러리입니다. 그의 Chrome 기반 렌더링 엔진은 실제 브라우저와 동일한 방식으로 HTML을 처리하므로 CSS3 속성, 미디어 쿼리 및 JavaScript로 렌더링된 콘텐츠가 최종 문서에 정해진 대로 나타납니다. 아래 섹션에서는 설치, 세 가지 핵심 렌더링 방법, 폼 데이터 처리, 고급 서식 기능 및 인증 지원을 포함하여 ASP.NET Core 응용 프로그램에 프로덕션 준비 PDF 생성을 통합하는 데 필요한 모든 내용을 안내합니다.
ASP.NET Core에서 HTML을 PDF로 신속하게 변환하는 방법은 무엇입니까?
ASP.NET Core에서 HTML에서 PDF로 변환을 시작하려면 몇 줄의 코드만 있으면 됩니다. 먼저 NuGet 패키지 관리자를 통해 IronPDF를 설치하십시오:
Install-Package IronPdf
설치가 완료되면 ChromePdfRenderer 클래스는 모든 렌더링 작업의 주 진입점입니다. 다음은 ASP.NET Core MVC 컨트롤러 내에서 HTML 문자열을 다운로드 가능한 PDF로 변환하는 방법을 보여주는 완전한 예입니다.
-
NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPdf 설치하기
PM > Install-Package IronPdf -
다음 코드 조각을 복사하여 실행하세요.
using IronPdf; using Microsoft.AspNetCore.Mvc; // program.cs var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); var app = builder.Build(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run(); // PdfController.cs public class PdfController : Controller { public IActionResult GeneratePdf() { var renderer = new ChromePdfRenderer(); string html = @" <h1>Invoice #2024-001</h1> <p>Generated on: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p> <table> <tr><th>Item</th><th>Price</th></tr> <tr><td>Professional License</td><td>$799</td></tr> </table>"; var pdf = renderer.RenderHtmlAsPdf(html); return File(pdf.BinaryData, "application/pdf", "invoice.pdf"); } } -
실제 운영 환경에서 테스트할 수 있도록 배포하세요.
무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
생성된 PDF 파일은 어떤 모습인가요?

복잡한 렌더링을 처리하는 ChromePdfRenderer 클래스는 HTML 구조, CSS 스타일, 그리고 JavaScript가 최종 PDF 출력에서 올바르게 렌더링되도록 보장합니다. 반환 값은 브라우저에서 파일 다운로드로 직접 스트림할 수 있는 PdfDocument 객체의 BinaryData 속성입니다.
소스에 맞는 적절한 렌더링 방법을 어떻게 선택하나요?
IronPDF는 특정 콘텐츠 소스에 맞게 설계된 세 가지 주요 렌더링 방법을 제공합니다. 시나리오에 맞는 방법을 이해하면 불필요한 복잡성을 피하고, 컨트롤러 코드를 깨끗하게 유지합니다.
| 소스 유형 | 메서드 | 최적의 용도 |
|---|---|---|
| 메모리에 있는 HTML 문자열 | `RenderHtmlAsPdf` | 데이터베이스 기반 보고서, 템플릿 송장, 동적 콘텐츠 |
| 디스크에 있는 HTML 파일 | `RenderHtmlFileAsPdf` | wwwroot의 정적 템플릿, 디자인 에이전시 제공 레이아웃 |
| 실시간 웹 URL | `RenderUrlAsPdf` | 페이지 보관, JavaScript 렌더 후 SPA 캡처 |
동적 HTML 문자열을 어떻게 변환하나요?
데이터베이스 기반 보고서와 같은 동적 콘텐츠를 다룰 때는 HTML 문자열을 직접 변환하기 위해 RenderHtmlAsPdf를 사용하세요. 이 방법은 모든 유효한 HTML 마크업을 받아 완전히 렌더링된 PDF를 반환합니다:
var renderer = new ChromePdfRenderer();
string htmlContent = BuildDynamicHtml(); // your method to generate HTML
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("dynamic-report.pdf");
var renderer = new ChromePdfRenderer();
string htmlContent = BuildDynamicHtml(); // your method to generate HTML
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("dynamic-report.pdf");
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = BuildDynamicHtml() ' your method to generate HTML
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("dynamic-report.pdf")

이 접근 방식은 실시간 데이터로 채워진 HTML 템플릿에서 PDF 문서를 생성할 때, 폼 제출 또는 모든 동적으로 생성된 콘텐츠에 잘 작동합니다. 렌더링 엔진은 사용자 정의 글꼴, 색상, 테이블 포맷을 포함한 모든 CSS 스타일링을 보존합니다. HTML이 상대 경로를 사용하는 외부 스타일시트나 이미지를 참조할 때, 두 번째 인수로 baseUrl를 전달하여 렌더러가 해당 자산을 올바르게 해결할 수 있도록 합니다.
디스크에서 정적 HTML 파일을 어떻게 변환하나요?
물리 파일로 저장된 HTML 템플릿의 경우, 메모리에 로드하지 않고 먼저 변환하려면 RenderHtmlFileAsPdf를 사용하세요. 이는 큰 템플릿에 효과적이며 문자열 연결을 피합니다:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html");
pdf.SaveAs("report.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html");
pdf.SaveAs("report.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html")
pdf.SaveAs("report.pdf")
이 방법은 파일에 참조된 CSS 스타일 시트, 이미지 및 기타 외부 리소스의 상대 경로를 자동으로 해결합니다. 디자인 팀이 C# 코드 베이스 외부에 별도의 HTML 템플릿 파일을 유지할 때 잘 작동합니다. CSS 인쇄 미디어 쿼리 및 사용자 지정 글꼴을 지원하므로 인쇄 환경을 위해 구축된 템플릿이 추가 구성 없이 충실하게 렌더링됩니다.
웹 페이지 URL을 PDF로 어떻게 변환하나요?
실시간 웹 페이지를 캡처하거나 URL로 접근 가능한 페이지를 PDF로 렌더링하려면 RenderUrlAsPdf를 사용하세요. 이 방법은 Chrome 엔진을 실행하고, URL로 이동한 후 페이지가 완전히 로드될 때까지 기다린 다음 렌더링된 출력을 캡처합니다:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("webpage.pdf");
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(1000)
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
Dim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("webpage.pdf")

WaitFor.RenderDelay 옵션은 페이지 로드 후 캡처하기 전에 렌더러가 일시 중지하도록 지시합니다. 이는 초기 HTML 응답이 도착한 후 JavaScript를 통해 DOM을 구축하는 단일 페이지 애플리케이션에 유용합니다. EnableJavaScript = true 설정하면 전체 Chrome JavaScript 엔진이 활성화되어, 차트, 데이터 그리드, 및 기타 JavaScript 렌더링 구성 요소가 브라우저와 마찬가지로 PDF에 나타납니다.
폼 데이터와 POST 요청을 어떻게 처리하나요?
PDF 생성 전에 폼 데이터를 처리하는 것은 ASP.NET 애플리케이션의 일반적인 패턴입니다 - 주문 확인, 배송 전표 및 영수증 모두 이 모델을 따릅니다. 접근 방식은 게시된 폼 데이터를 모델에 바인딩하고, 해당 모델에서 HTML 문자열을 구축한 다음 문자열을 PDF로 렌더링하는 것입니다:
[HttpPost]
public IActionResult ProcessFormToPdf(OrderModel model)
{
var renderer = new ChromePdfRenderer();
string html = $@"
<h2>Order Confirmation</h2>
<p>Customer: {model.CustomerName}</p>
<p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
<ul>
{string.Join("", model.Items.Select(i => $"<li>{i.Name} -- ${i.Price}</li>"))}
</ul>
<p><strong>Total: ${model.Total}</strong></p>";
var pdf = renderer.RenderHtmlAsPdf(html);
string fileName = $"order-{model.OrderId}.pdf";
return File(pdf.BinaryData, "application/pdf", fileName);
}
[HttpPost]
public IActionResult ProcessFormToPdf(OrderModel model)
{
var renderer = new ChromePdfRenderer();
string html = $@"
<h2>Order Confirmation</h2>
<p>Customer: {model.CustomerName}</p>
<p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
<ul>
{string.Join("", model.Items.Select(i => $"<li>{i.Name} -- ${i.Price}</li>"))}
</ul>
<p><strong>Total: ${model.Total}</strong></p>";
var pdf = renderer.RenderHtmlAsPdf(html);
string fileName = $"order-{model.OrderId}.pdf";
return File(pdf.BinaryData, "application/pdf", fileName);
}
Imports System
Imports System.Linq
Imports Microsoft.AspNetCore.Mvc
<HttpPost>
Public Function ProcessFormToPdf(model As OrderModel) As IActionResult
Dim renderer = New ChromePdfRenderer()
Dim html As String = $"
<h2>Order Confirmation</h2>
<p>Customer: {model.CustomerName}</p>
<p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
<ul>
{String.Join("", model.Items.Select(Function(i) $"<li>{i.Name} -- ${i.Price}</li>"))}
</ul>
<p><strong>Total: ${model.Total}</strong></p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim fileName As String = $"order-{model.OrderId}.pdf"
Return File(pdf.BinaryData, "application/pdf", fileName)
End Function
폼 인터페이스가 어떻게 보이나요?

생성된 PDF에서는 폼 데이터가 어떻게 나타나나요?

더 고급 문서 시나리오의 경우, PDF 폼을 통합하거나 사전 채워진 필드를 가진 기존 PDF 템플릿을 편집할 수 있습니다. 라이브러리는 또한 법적 문서 및 계약에 대한 디지털 서명을 지원하여 생성된 문서에 암호학적으로 검증 가능한 서명을 추가할 수 있습니다.
사용자 데이터를 HTML 문자열에 삽입할 때 중요한 고려 사항은 데이터의 정화입니다. 항상 사용자 제공 문자열을 HTML에 삽입하기 전에 이스케이프하여 인젝션 문제를 방지해야 합니다. 각 필드에 대한 간단한 System.Web.HttpUtility.HtmlEncode(model.CustomerName) 호출은 템플릿을 렌더러에 전달하기 전에 안전하게 유지합니다.
전문적인 서식, 헤더, 워터마크를 어떻게 추가하나요?
헤더, 푸터 및 워터마크를 어떻게 구성하나요?
전문적인 PDF 문서는 종종 모든 페이지에 헤더 및 푸터와 초안 또는 기밀 문서에 대한 워터마크가 필요합니다. IronPDF는 RenderingOptions 객체의 속성과 결과 PdfDocument의 ApplyWatermark 방법을 통해 둘 다 처리합니다:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
MaxHeight = 25,
HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
MaxHeight = 20,
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>",
30, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("report-with-watermark.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
MaxHeight = 25,
HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
MaxHeight = 20,
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>",
30, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("report-with-watermark.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.MaxHeight = 25,
.HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.MaxHeight = 20,
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
}
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center)
pdf.SaveAs("report-with-watermark.pdf")

푸터 HTML의 {page} 및 {total-pages} 자리표시자가 렌더링 시 자동으로 대체되어 포스트 프로세싱 없이 올바른 페이지 번호를 얻을 수 있습니다. 페이지 번호, 배경 이미지 또는 전면 오버레이, 사용자 지정 텍스트 또는 이미지 스탬프도 추가할 수 있습니다.
PDF 레이아웃 제어를 위한 CSS 인쇄 미디어를 어떻게 사용합니까?
PDF 출력이 기대에 부합하는지 확인하기 위해 CSS @media print 규칙과 PdfCssMediaType.Print 설정을 사용하세요. IronPDF는 페이지 구분 제어와 사용자 지정 용지 크기를 완전히 지원합니다:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.ViewPortWidth = 1024;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string html = @"
<style>
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
.page-break { page-break-after: always; }
}
@page {
size: A4;
margin: 1cm;
}
</style>
<div class='content'>
<h1>Professional Report</h1>
<div class='page-break'></div>
<h2>Section 2</h2>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.ViewPortWidth = 1024;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string html = @"
<style>
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
.page-break { page-break-after: always; }
}
@page {
size: A4;
margin: 1cm;
}
</style>
<div class='content'>
<h1>Professional Report</h1>
<div class='page-break'></div>
<h2>Section 2</h2>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.ViewPortWidth = 1024
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.MarginLeft = 10
renderer.RenderingOptions.MarginRight = 10
Dim html As String = "
<style>
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
.page-break { page-break-after: always; }
}
@page {
size: A4;
margin: 1cm;
}
</style>
<div class='content'>
<h1>Professional Report</h1>
<div class='page-break'></div>
<h2>Section 2</h2>
</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)

인쇄 CSS를 사용하면 내비게이션 메뉴나 상호작용 버튼과 같은 불필요한 웹 요소를 숨기면서 PDF 문서의 전문적인 포맷을 유지할 수 있습니다. CssMediaType = PdfCssMediaType.Print 설정은 렌더러에게 화면 스타일이 아닌 사용자의 @media print 규칙을 적용하도록 지시하며, 일반적으로 배경 장식 제거하고 인쇄 출력용으로 서체를 조정합니다. 페이지별로 사용자 지정 여백을 구성하고 페이지 방향 및 회전을 제어하여 넓은 형식 또는 회전된 보고서를 생성할 수 있습니다.
W3C CSS 페이지 미디어 사양은 @page, page-break-before 및 widows과 같은 속성이 페이지 출력에서 어떻게 동작해야 하는지 정의합니다. IronPDF의 Chrome 엔진은 이 명세서를 밀접하게 따르므로 CSS 표준에 맞추어 작성된 스타일은 수동 조정 없이 PDF로 정확하게 변환됩니다.
보호된 페이지의 인증을 어떻게 처리합니까?
안전한 응용 프로그램의 경우, IronPDF는 쿠키, HTTP 요청 헤더, 네트워크 자격 증명을 포함한 다양한 인증 방법을 지원합니다. 이렇게 하면 로그인 세션이나 기본 인증이 필요한 페이지를 렌더링할 수 있습니다:
var renderer = new ChromePdfRenderer();
renderer.RequestContext.Cookies.Add(new Cookie
{
Name = "SessionId",
Value = "your-session-token",
Domain = "example.com"
});
renderer.ChromePdfRenderOptions.HttpLoginCredentials = new HttpLoginCredentials
{
Username = "user",
Password = "password"
};
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report");
var renderer = new ChromePdfRenderer();
renderer.RequestContext.Cookies.Add(new Cookie
{
Name = "SessionId",
Value = "your-session-token",
Domain = "example.com"
});
renderer.ChromePdfRenderOptions.HttpLoginCredentials = new HttpLoginCredentials
{
Username = "user",
Password = "password"
};
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report");
Dim renderer = New ChromePdfRenderer()
renderer.RequestContext.Cookies.Add(New Cookie With {
.Name = "SessionId",
.Value = "your-session-token",
.Domain = "example.com"
})
renderer.ChromePdfRenderOptions.HttpLoginCredentials = New HttpLoginCredentials With {
.Username = "user",
.Password = "password"
}
Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report")
결과 PDF를 소유자 비밀번호와 사용자 비밀번호로 암호화하여 인쇄, 복사 또는 편집 등의 작업을 제한할 수 있습니다. 인증 기반 렌더링과 PDF 수준 권한을 결합하면 문서를 생성할 수 있는 사람과 그것을 받은 사람이 수행할 수 있는 작업을 모두 제어할 수 있습니다.
기업 환경의 경우 웹 요청 처리기 내에서 PDF를 생성할 때 비동기 렌더링 API를 사용하는 것을 고려하십시오. 비동기 렌더링은 Chrome 엔진이 문서를 처리하는 동안 ASP.NET 스레드 풀을 비워두므로 동시로드 상황에서 처리량이 향상됩니다. 라이브러리는 배치 문서 생성 시나리오를 위한 멀티스레드 렌더링도 지원합니다.
HTML에서 PDF로 변환할 때 Chrome 렌더링 엔진이 중요한 이유는 무엇입니까?
대부분의 PDF 생성 라이브러리는 자체 맞춤형 엔진을 사용하여 HTML을 직접 구문 분석합니다. 이는 CSS 속성의 일부분만 지원하고 JavaScript 실행을 지원하지 않으며 CSS Grid나 Flexbox와 같은 현대적인 레이아웃 기술을 제대로 처리하지 못함을 의미합니다. IronPDF는 Google Chrome 브라우저를 구동하는 동일한 기술인 Chrome 엔진을 내장하여 다른 접근 방식을 취합니다.
실질적인 결과로는 Chrome에서는 올바르게 표시되는 HTML 페이지는 IronPDF를 통해 PDF로 정확하게 렌더링됩니다. 이는 렌더링 엔진이 개발자가 디자인에 사용한 브라우저와 다르게 CSS를 해석하여 PDF 출력이 예상되는 모양과 다르게 나오는 일반적인 버그 클래스를 제거합니다.
MDN 웹 문서의 CSS 페이지 미디어를 위한 참조 문서와 Microsoft의 ASP.NET Core 문서 모두 IronPDF의 Chrome 기반 기초를 통해 지원하는 기능을 설명합니다. 표준 HTML, CSS, JavaScript에 이미 익숙한 개발자는 별도의 문서 레이아웃 언어를 학습하지 않고도 그 지식을 PDF 생성에 직접 적용할 수 있습니다.
IronPDF의 RenderingOptions는 용지 크기, 여백, JavaScript 실행 및 렌더링 지연을 제어하는 기능을 노출합니다. 라이브러리는 UTF-8 텍스트 및 국제 문자 세트, Google Fonts 또는 로컬 파일을 통한 웹 폰트를 처리하고, Markdown 문서를 PDF로 변환도 가능합니다. 열람 기록 보관이나 접근성 준수 요구 사항을 위해 PDF/A 및 PDF/UA 출력 형식을 지원합니다. 라이브러리는 Windows, Linux, macOS에서 실행되며 추가 설정 없이 Azure 및 AWS에 배포됩니다.
다음 단계는 무엇입니까?
IronPDF를 사용하여 ASP.NET C#에서 HTML을 PDF로 변환하면 애플리케이션에 신뢰할 수 있고 브라우저에 정확한 문서 생성 파이프라인을 제공합니다. 세 가지 렌더링 방법 — HTML 문자열, HTML 파일, URL —이 실제로 접할 콘텐츠 소스를 완전히 커버합니다. 헤더, 푸터, 워터마크, 인쇄 CSS와 같은 고급 기능을 사용하면 PDF를 수동으로 후처리하지 않고도 전문 출력을 생성할 수 있습니다.
다음 단계는 NuGet 패키지를 설치하고 이 가이드의 첫 번째 섹션부터 빠른 시작 예제를 실행하는 것입니다. 거기에서 완전한 C# PDF 튜토리얼을 살펴보거나 PDF 편집 가이드를 리뷰하여 기존 PDF에서 내용 병합, 분할, 주석 추가 및 추출하는 방법을 배웁니다.
프로젝트가 Blazor를 타겟팅하는 경우 Blazor PDF 튜토리얼이 서버 사이드 및 WebAssembly 통합을 안내합니다. MVC 프로젝트의 경우, MVC Core PDF 가이드 및 Razor Pages 가이드는 .cshtml 보기를 사용한 템플릿 기반 렌더링을 다룹니다. 디버깅 및 성능 튜닝용으로 IronPDF는 사용자 지정 로깅과 성능 지침을 제공하여 고용량 문서 생성 워크플로에서 병목을 식별하는 데 도움을 줍니다.
라이브러리의 모든 기능을 직접 프로젝트에서 테스트할 수 있는 무료 체험판을 시작하세요. 실제 배포에서는 개인 개발자, 팀, Enterprise 배포 시나리오를 위한 라이선스 옵션을 이용할 수 있습니다.
자주 묻는 질문
ASP.NET Core에서 HTML을 PDF로 변환하려면 어떻게 해야 하나요?
NuGet을 통해 IronPDF를 설치하고, ChromePdfRenderer 인스턴스를 만들고, HTML 문자열과 함께 RenderHtmlAsPdf를 호출하십시오. 이 렌더러는 BinaryData를 브라우저에 스트리밍할 수 있는 PdfDocument를 반환합니다.
IronPDF가 HTML을 PDF로 변환하는 데 적합한 이유는 무엇인가요?
IronPDF는 Chrome 렌더링 엔진을 내장하고 있어 Chrome에서 올바르게 표시되는 모든 HTML 페이지를 올바르게 PDF로 렌더링합니다. 여기에는 CSS3, JavaScript로 렌더링된 콘텐츠, 웹 글꼴 및 반응형 레이아웃이 포함됩니다.
IronPDF를 사용하여 ASP.NET에서 청구서와 보고서를 생성할 수 있나요?
네. 데이터 모델로부터 HTML 문자열을 작성하고 RenderHtmlAsPdf에 전달한 다음 BinaryData를 파일 다운로드로 반환하세요. IronPDF는 테이블 형식, 사용자 지정 글꼴 및 CSS 스타일을 출력에 유지합니다.
IronPDF는 CSS 인쇄 미디어 쿼리를 지원하나요?
네. RenderingOptions.CssMediaType = PdfCssMediaType.Print를 설정하여 탐색 요소를 숨기고 인쇄 최적화된 타이포그래피를 적용하는 @media print 규칙을 활성화하세요.
IronPDF가 JavaScript로 렌더링된 콘텐츠를 처리할 수 있나요?
네. RenderingOptions.EnableJavaScript = true를 설정하고 WaitFor.RenderDelay를 사용하여 페이지 로드 후 PDF가 캡처되기 전에 JavaScript 엔진이 DOM을 빌드할 시간을 갖도록 일시 중지하세요.
IronPDF는 보호된 페이지에 대한 인증을 어떻게 처리하나요?
IronPDF는 RequestContext.Cookies 및 ChromePdfRenderOptions.HttpLoginCredentials 속성을 통해 세션 쿠키, HTTP 헤더 및 기본 인증 자격 증명을 지원합니다.
IronPDF는 어떤 플랫폼을 지원하나요?
IronPDF는 Windows, Linux 및 macOS에서 실행되며 Azure 및 AWS에 배포할 수 있습니다. .NET 6, .NET 7, .NET 8 및 .NET Framework 4.6.2 이상의 버전을 대상으로 합니다.
IronPDF가 PDF/A 출력을 보관을 위해 지원하나요?
네. IronPDF는 장기 보관을 위한 PDF/A 준수 및 접근성을 위한 PDF/UA를 지원합니다. 이러한 출력 모드는 SaveAsPdfA 및 SaveAsPdfUA 메서드를 통해 구성할 수 있습니다.


