푸터 콘텐츠로 바로가기
IRONPDF 사용하기

IronPDF를 사용한 ASP.NET HTML을 PDF로 변환

IronPDF는 CSS 스타일링과 JavaScript 기능을 유지하는 Chrome 기반의 렌더링 엔진을 사용해 ASP.NET HTML을 PDF로 변환합니다. 이 튜토리얼은 ASP.NET Core 애플리케이션에서 HTML 문자열, 뷰 및 URL을 전문 PDF 문서로 변환하는 효과적인 방법을 보여줍니다.

동적 ASP.NET HTML을 PDF 문서로 변환하는 것은 현대 웹 애플리케이션에서 기본 요구 사항입니다. 청구서를 생성하거나 보고서를 작성하거나 다운로드 가능한 PDF 파일을 생성하는 경우, HTML 콘텐츠를 전문 PDF 문서로 변환하는 것은 세련된 사용자 경험을 제공하는 데 필수적입니다.

IronPDF는 믿을 수 있는 Chrome 기반의 렌더링 엔진을 제공하여 HTML 형태, CSS 스타일링 및 JavaScript 기능을 유지하면서 ASP HTML to PDF 변환 프로세스를 단순화합니다. 이 튜토리얼은 픽셀 단위의 완벽한 결과를 위한 Chrome 렌더링 엔진을 포함하여 IronPDF 라이브러리를 사용하여 ASP.NET Core 애플리케이션에서 HTML을 PDF로 변환하는 효과적인 방법을 안내합니다.

IronPDF C# PDF 라이브러리 홈 페이지 배너로 주요 기능인 HTML을 PDF로 변환, PDF 편집 기능, 다운로드 및 라이선스 버튼을 통한 배포 옵션을 보여줍니다.

개발자는 왜 HTML to PDF 변환이 필요할까요?

ASP.NET Core 애플리케이션은 사용자가 PDF 파일로서 다운로드, 공유 또는 아카이빙해야 하는 동적 HTML 콘텐츠를 자주 생성합니다. HTML을 PDF로 변환하는 것은 웹 페이지를 단순히 저장하거나 스크린샷을 찍는 것에 비해 여러 가지 주요 이점을 제공합니다.

PDF 문서는 모든 장치 및 플랫폼에서 일관된 형식을 유지하여 청구서가 Windows, Mac 또는 모바일 장치에서 동일하게 보이도록 합니다. 디지털 서명, 보안 제한 또는 전문 인쇄가 필요한 문서에 이상적입니다. 서버 측 PDF 변환은 사용자가 특정 소프트웨어를 설치할 필요성을 제거하고 최종 출력에 대한 더 나은 제어를 제공합니다.

일반적인 사용 사례에는 대시보드 데이터에서 재무 보고서를 생성하고, 주문 정보에서 다운로드 가능한 청구서를 생성하고, QR 코드가 있는 티켓 및 패스를 생성하며, 양식 제출을 영구 기록으로 변환하는 것이 포함됩니다. 서버에서 ASP HTML to PDF 변환을 처리하여 사용자의 브라우저 또는 장치 기능에 관계없이 일관된 결과를 보장합니다. IronPDF는 복잡한 레이아웃 렌더링에 뛰어나며 JavaScript가 많은 콘텐츠도 부드럽게 처리합니다. PDF 규격ISO 표준 기구에 의해 유지되며, PDF는 크로스 플랫폼 배포를 위한 가장 휴대 가능한 문서 형식입니다.

IronPDF 기능 개요로 네 가지 주요 범주: PDF 생성, PDF 변환, PDF 편집 및 PDF 서명 및 보안을 제공하며, 각 섹션 아래에 세부 기능 목록이 있습니다.

ASP.NET 프로젝트에 IronPDF를 설치하는 방법은 무엇인가요?

ASP.NET Core 프로젝트에서 IronPDF를 시작하는 것은 간단합니다. 이 라이브러리는 .NET 6, 8, 10을 지원하여 모든 현대 ASP.NET Core 애플리케이션과 호환됩니다. Windows 호환성 가이드 또는 Linux 설정 지침을 확인하여 특정 플랫폼 요구 사항을 확인하세요.

프로젝트에 IronPDF를 추가하는 가장 빠른 방법은 NuGet 패키지 관리자를 사용하는 것입니다. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 'NuGet 패키지 관리'를 선택한 다음 IronPdf를 검색하십시오. 최신 버전을 설치 버튼을 클릭하십시오. 자세한 지침은 IronPDF 설치 가이드를 참조하세요.

패키지 관리자 콘솔을 사용하여 설치:

Install-Package IronPdf
Install-Package IronPdf
SHELL

또는 .NET CLI를 사용하여 다음과 같이 할 수 있습니다.

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

패키지 매니저 콘솔이 IronPDF NuGet Install-Package 과정을 보여주며 여러 종속성 다운로드가 포함되어 있습니다.

설치 후 IronPDF를 어떻게 구성할 수 있나요?

설치가 완료되면, PDF 생성을 처리할 C# 파일에 using IronPdf; 지시를 추가하세요. 이 입력은 ChromePdfRenderer 클래스 및 모든 렌더링 구성 옵션에 대한 액세스를 제공합니다.

대부분의 ASP.NET Core 애플리케이션에서 IronPDF는 설치 후 즉시 작동합니다. 그러나 Windows, Linux, Docker 또는 클라우드 등에 맞춘 환경별로 세부 조정을 위해 Program.cs 파일에 전역 옵션을 설정할 수 있습니다:

using IronPdf;

// Optional global configuration (place in Program.cs)
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// Required for Azure App Service deployments
Installation.AzureQuickDeployment = true;
using IronPdf;

// Optional global configuration (place in Program.cs)
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// Required for Azure App Service deployments
Installation.AzureQuickDeployment = true;
Imports IronPdf

' Optional global configuration
Installation.TempFolderPath = "C:\Temp\IronPdf\"
Installation.LinuxAndDockerDependenciesAutoConfig = True

' Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All
Installation.LogFilePath = "IronPdfLog.log"

' Required for Azure App Service deployments
Installation.AzureQuickDeployment = True
$vbLabelText   $csharpLabel

Azure 배포의 경우, 최적의 성능을 위해 AzureQuickDeployment를 활성화하세요. 프로덕션 환경에서는 PDF 생성 작업을 모니터링하고 렌더링 실패를 조기에 포착하기 위해 맞춤 로그를 구현하세요.

IronPDF 크로스 플랫폼 지원 다이어그램이 .NET 버전, 운영 체제, 클라우드 플랫폼 및 개발 환경과의 호환성을 보여줍니다.

HTML 문자열을 PDF로 변환하는 방법은 무엇인가요?

IronPDF에서 가장 기본적인 작업은 HTML 문자열을 직접 PDF 문서로 변환하는 것입니다. 이 접근법은 ASP.NET 애플리케이션에서 동적으로 HTML 콘텐츠를 구축하거나 HTML 템플릿을 작업할 때 이상적입니다. RenderHtmlAsPdf 메서드는 변수, 문자열 빌더 또는 템플릿 엔진에서 HTML을 변환하는 유연성을 제공합니다.

// Create a PDF renderer instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // milliseconds to wait before capture

// Convert an HTML string to a PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the PDF to disk
pdf.SaveAs("report.pdf");

// Or get binary data to return as a file download
var pdfBytes = pdf.BinaryData;
// Create a PDF renderer instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // milliseconds to wait before capture

// Convert an HTML string to a PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the PDF to disk
pdf.SaveAs("report.pdf");

// Or get binary data to return as a file download
var pdfBytes = pdf.BinaryData;
' Create a PDF renderer instance
Dim renderer = New ChromePdfRenderer()

' Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.RenderDelay = 500 ' milliseconds to wait before capture

' Convert an HTML string to a PDF document
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " & DateTime.Now & "</p>")

' Save the PDF to disk
pdf.SaveAs("report.pdf")

' Or get binary data to return as a file download
Dim pdfBytes = pdf.BinaryData
$vbLabelText   $csharpLabel

이 스니펫은 HTML을 렌더링하기 위해 Chromium 엔진을 사용하는 ChromePdfRenderer 인스턴스를 생성합니다. RenderHtmlAsPdf 메서드는 유효한 HTML 문자열을 수용하고, 디스크에 저장하거나 브라우저로 스트리밍할 수 있는 PdfDocument 객체를 반환합니다. 비동기 PDF 생성을 위해 요청 스레드를 차단하지 않도록 호출을 Task.Run로 감싸세요.

PDF 출력은 어떻게 보이나요?

2025년 1월 11일 11:51:30 PM에 생성된 제목과 타임스탬프가 있는 기본 판매 보고서 PDF 뷰어의 스크린샷

CSS 스타일링 및 이미지를 포함하는 방법은?

IronPDF는 HTML을 PDF로 변환할 때 다양한 소스에서 이미지를 포함시키고 CSS 스타일링을 완벽하게 지원합니다. 렌더러는 인라인 스타일, 외부 스타일시트, 웹 폰트, SVG 그래픽 및 base64로 인코딩된 이미지를 처리합니다:

var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .data-table { width: 100%; border-collapse: collapse; }
        .data-table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
    <table class='data-table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>";

var renderer = new ChromePdfRenderer();

// Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = new Uri("https://yourdomain.com/");
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .data-table { width: 100%; border-collapse: collapse; }
        .data-table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
    <table class='data-table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>";

var renderer = new ChromePdfRenderer();

// Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = new Uri("https://yourdomain.com/");
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
Dim html As String = "
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .data-table { width: 100%; border-collapse: collapse; }
        .data-table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
    <table class='data-table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>"

Dim renderer As New ChromePdfRenderer()

' Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = New Uri("https://yourdomain.com/")
renderer.RenderingOptions.EnableJavaScript = True

Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("styled-report.pdf")
$vbLabelText   $csharpLabel

렌더러는 플렉스박스 및 그리드 레이아웃을 포함한 CSS3 기능을 완벽하게 처리합니다. 복잡한 레이아웃의 경우, Bootstrap 호환성 지침을 사용하거나 CSS page-break-before 규칙을 사용하여 맞춤 페이지 분할을 구현하세요.

ASP.NET Core 뷰를 PDF로 변환하는 방법은?

기존 템플릿을 기반으로 보고서를 생성하려면 전체 ASP.NET Core 뷰를 PDF로 변환하는 것이 일반적입니다. IronPDF는 Razor 뷰, ASPX 페이지Blazor 구성요소도 지원합니다.

컨트롤러 뷰를 변환하는 방법은?

컨트롤러에서 HTML 문자열로 뷰를 렌더링하고 이를 IronPDF에 전달합니다. 이 접근 방식은 MVC Core 및 MVC Framework 애플리케이션 모두와 함께 작동합니다:

[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the Razor view to an HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add a text header with the invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Restrict copying while allowing printing
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, "application/pdf", fileName);
}
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the Razor view to an HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add a text header with the invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Restrict copying while allowing printing
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, "application/pdf", fileName);
}
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc

<HttpGet>
Public Async Function DownloadPdf() As Task(Of IActionResult)
    Dim invoiceModel = New InvoiceModel With {
        .InvoiceNumber = 12345,
        .Date = DateTime.Now,
        .CustomerName = "Acme Corporation",
        .Items = New List(Of InvoiceItem) From {
            New InvoiceItem With {.Description = "Service", .Quantity = 1, .Price = 100.0},
            New InvoiceItem With {.Description = "Support", .Quantity = 2, .Price = 50.0}
        },
        .Total = 200.0
    }

    ' Render the Razor view to an HTML string first
    Dim htmlContent = Await RenderViewToString("Invoice", invoiceModel)

    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
    renderer.RenderingOptions.PrintHtmlBackgrounds = True

    ' Add a text header with the invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" & invoiceModel.InvoiceNumber
    renderer.RenderingOptions.TextHeader.DrawDividerLine = True

    Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

    ' Restrict copying while allowing printing
    pdf.SecuritySettings.AllowUserPrinting = True
    pdf.SecuritySettings.AllowUserCopyPasteContent = False

    Dim fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf"
    Return File(pdf.BinaryData, "application/pdf", fileName)
End Function
$vbLabelText   $csharpLabel

이 접근 방식은 Razor 뷰를 먼저 HTML로 렌더링한 다음 이를 PDF로 변환하고 파일을 브라우저로 반환합니다. 전체 ASP.NET 파이프라인 없이 헤드리스 변환 시나리오에서는 Razor.Templating.Core를 사용하는 것을 고려하세요.

생성된 PDF 파일은 어떤 모습인가요?

PDF viewer showing a rendered invoice #12345 dated 2/11/2025 for Acme Corporation with a single service item totaling $100.00

URL을 PDF로 변환하는 방법은?

기존 웹 페이지의 경우 IronPDF는 URL을 직접 PDF 파일로 변환할 수 있습니다. 이 방법은 인증된 요청을 위한 쿠키와 사용자 정의 HTTP 헤더를 지원합니다:

[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Allow time for dynamic content to load before capture
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000;
    renderer.RenderingOptions.ViewportWidth = 1920;

    // Pass authorization headers if the page requires authentication
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    var pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report");

    // Compress embedded images to reduce file size
    pdf.CompressImages(90);

    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Allow time for dynamic content to load before capture
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000;
    renderer.RenderingOptions.ViewportWidth = 1920;

    // Pass authorization headers if the page requires authentication
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    var pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report");

    // Compress embedded images to reduce file size
    pdf.CompressImages(90);

    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
Imports Microsoft.AspNetCore.Mvc

<HttpGet>
Public Function GeneratePdfFromUrl() As IActionResult
    Dim renderer = New ChromePdfRenderer()

    ' Allow time for dynamic content to load before capture
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000
    renderer.RenderingOptions.ViewportWidth = 1920

    ' Pass authorization headers if the page requires authentication
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token")

    Dim pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report")

    ' Compress embedded images to reduce file size
    pdf.CompressImages(90)

    Return File(pdf.BinaryData, "application/pdf", "webpage.pdf")
End Function
$vbLabelText   $csharpLabel

이 방법은 스타일시트, 스크립트 및 이미지와 같은 모든 외부 리소스를 처리합니다. JavaScript가 많은 사이트의 경우 렌더링 지연을 조정하거나 특정 DOM 이벤트가 발생한 후에만 캡처를 트리거하기 위해 WaitFor 조건을 사용하세요.

URL 변환의 결과는 무엇입니까?

C# PDF 변환을 위한 HTML을 PDF로 변환하는 기능, 가격 옵션 및 .NET 개발자를 위한 코드 예제를 보여주는 IronPDF 라이브러리 홈페이지

PDF 출력을 어떻게 사용자 정의합니까?

IronPDF는 HTML에서 생성되는 PDF 문서를 제어하기 위한 광범위한 사용자 정의 옵션을 제공합니다. 이 설정들은 페이지 레이아웃 및 형식에 대한 특정 요구 사항을 충족하는 전문적인 파일을 만드는데 도움이 됩니다. 전체 렌더링 옵션 범위를 탐색하세요.

페이지 크기 및 여백을 어떻게 설정합니까?

전문적인 문서 레이아웃을 위해 용지 크기여백을 정확하게 제어합니다:

var renderer = new ChromePdfRenderer();

// Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var renderer = new ChromePdfRenderer();

// Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
Dim renderer = New ChromePdfRenderer()

' Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait

' Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20

' Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)

' Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True
$vbLabelText   $csharpLabel

표준 용지 크기에서 선택하거나 사용자 정의 치수를 정의하고 세로 또는 가로 방향을 설정하며 디자인 요구 사항에 맞게 여백을 조정할 수 있습니다. 방향 요구에 대해서는 페이지 회전 옵션을 탐색하세요.

머리글과 바닥글을 어떻게 추가합니까?

일관된 머리글 및 바닥글을 추가하면 PDF 문서의 전문성 있는 외관이 향상됩니다. IronPDF는 일반 텍스트 머리글과 이미지 및 CSS가 포함된 HTML 머리글 모두를 지원합니다:

// Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2025 Company Name",
    DrawDividerLine = true
};

// For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};
// Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2025 Company Name",
    DrawDividerLine = true
};

// For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};
' Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
    .CenterText = "Company Report",
    .LeftText = "{date}",
    .RightText = "Confidential",
    .FontSize = 12,
    .FontFamily = "Arial",
    .DrawDividerLine = True
}

renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
    .CenterText = "Page {page} of {total-pages}",
    .LeftText = "© 2025 Company Name",
    .DrawDividerLine = True
}

' For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    .MaxHeight = 50,
    .DrawDividerLine = True
}
$vbLabelText   $csharpLabel

머리글과 바닥글은 페이지 번호, 날짜 및 동적 콘텐츠에 대한 특수 플레이스홀더를 지원합니다. 보다 세분화된 제어를 위해 특정 페이지에 서로 다른 머리글을 적용할 수도 있습니다.

ASP.NET PDF 변환에 대한 모범 사례는 무엇입니까?

HTML을 PDF로 변환할 때 최적의 성능과 품질을 보장하기 위해 다음의 검증된 관행을 따르세요. 대규모 배포를 위한 성능 최적화 전략을 구현하세요.

항상 PDF를 생성하기 전에 브라우저에서 HTML 렌더링을 테스트하여 스타일링과 레이아웃을 확인하세요. 외부 리소스에 대한 기본 URL을 사용하세요. 상대 경로는 변환 중 해상도 실패를 일으킬 수 있습니다. JavaScript가 많은 페이지의 경우 렌더링 지연을 추가하여 캡처 전에 완전한 로딩을 보장하세요.

다음 예제에는 구성을 중앙 집중화하고 비동기 생성을 처리하는 재사용 가능한 PDF 서비스가 나와 있습니다:

public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, bool compressImages = false)
    {
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        if (compressImages)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }
}
public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, bool compressImages = false)
    {
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        if (compressImages)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }
}
Public Class PdfService
    Private ReadOnly _renderer As ChromePdfRenderer

    Public Sub New()
        _renderer = New ChromePdfRenderer()
        _renderer.RenderingOptions.RenderDelay = 100
        _renderer.RenderingOptions.Timeout = 60000
        _renderer.RenderingOptions.EnableJavaScript = True
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
    End Sub

    Public Async Function GeneratePdfAsync(html As String, Optional compressImages As Boolean = False) As Task(Of Byte())
        Dim pdf = Await Task.Run(Function() _renderer.RenderHtmlAsPdf(html))

        If compressImages Then
            pdf.CompressImages(90)
        End If

        Return pdf.BinaryData
    End Function
End Class
$vbLabelText   $csharpLabel

서버의 부하를 줄이기 위해 자주 생성되는 문서에 캐싱을 구현하는 것을 고려하세요. 웹 애플리케이션에서 더 나은 확장성을 위해 비동기 메서드를 사용하세요. 대량 시나리오의 경우 병렬 처리를 고려하거나 IronPDF를 마이크로서비스로 배포하세요.

프로덕션에 배포할 때는 적절한 임시 폴더 경로를 구성하고 귀하의 호스팅 환경에 필요한 종속성이 설치되어 있는지 확인하세요, 특히 Linux 배포의 경우. 메모리 사용량을 모니터링하고 Microsoft의 .NET 가이드에서 IDisposable 패턴을 사용하여 적절한 폐기 패턴을 구현하세요. 대형 HTML 문서 작업 시 메모리 부담을 줄이기 위해 스트리밍 접근 방식을 사용하세요.

아래 표는 세 가지 주요 변환 방법과 각 방법의 사용 시기를 요약합니다:

IronPDF ASP.NET 변환 방법 비교
메서드 최적의 용도 주요 API 인증 지원
HTML 문자열 코드에서 동적으로 생성된 콘텐츠 `RenderHtmlAsPdf()` 해당 없음
Razor 뷰 기존 MVC 보기 및 템플릿 `RenderHtmlAsPdf()` 세션 컨텍스트
URL 공개 또는 인증된 웹 페이지 `RenderUrlAsPdf()` 쿠키, 헤더, 자격 증명

PDF 생성 프로세스의 다음 단계는 무엇입니까?

ASP.NET Core 애플리케이션에서 ASP HTML을 PDF로 변환하는 것은 IronPDF로 간단해집니다. 라이브러리의 Chrome 기반 렌더링은 전문 문서 생성을 위한 광범위한 사용자 정의 옵션을 제공하면서 정확한 변환을 보장합니다. PDF/A 준수, 디지털 서명, 및 폼 생성과 같은 고급 기능을 탐색하십시오.

HTML 문자열, URL 또는 전체 Razor 뷰를 사용할 때 IronPDF는 정확한 형식, CSS 스타일 및 JavaScript 동작을 유지합니다. PDF 압축, 워터마킹메타데이터 관리를 고려하여 완전한 문서 제어를 수행하십시오.

오늘 무료 30일 체험판을 시작하여 ASP.NET Core 애플리케이션에서 전문 PDF 생성을 구현하십시오. 선택하는 데 도움이 필요하십니까? 라이센스 옵션 보기 또는 팀과 데모를 예약하십시오.

각기 다른 개발자, 위치 및 프로젝트 한도를 가진 네 가지 가격 수준(Lite, Plus, Professional, Unlimited)을 보여주는 IronPDF 라이선스 페이지

자주 묻는 질문

ASP.NET Core에서 HTML을 PDF로 변환하는 가장 좋은 방법은 무엇입니까?

ASP.NET Core에서 HTML을 PDF로 변환하는 가장 좋은 방법은 IronPDF를 사용하는 것입니다. 이는 HTML 콘텐츠를 변환하여 고품질의 PDF 생성을 보장하는 원활한 솔루션을 제공합니다.

HTML을 PDF로 변환할 때 IronPDF를 사용해야 하는 이유는 무엇입니까?

IronPDF는 정확한 렌더링, CSS 및 JavaScript 지원, 복잡한 HTML 문서 처리를 포함한 강력한 기능을 제공합니다. 이는 ASP.NET 애플리케이션에서 전문적인 수준의 PDF 생성에 이상적입니다.

IronPDF가 ASP.NET 애플리케이션의 동적 콘텐츠를 처리할 수 있습니까?

예, IronPDF는 ASP.NET 애플리케이션에서 동적 콘텐츠를 효과적으로 처리할 수 있습니다. 동적 HTML 콘텐츠를 PDF로 변환하여 송장, 보고서 및 기타 문서를 작성할 수 있습니다.

IronPDF를 사용하여 생성된 PDF에 CSS 스타일을 포함할 수 있습니까?

물론입니다. IronPDF는 CSS 스타일을 지원합니다. 기존의 CSS 스타일시트를 적용하여 PDF 출력이 HTML 콘텐츠의 디자인 및 레이아웃과 일치하도록 할 수 있습니다.

HTML을 PDF로 변환할 때 IronPDF는 JavaScript를 어떻게 지원합니까?

IronPDF는 JavaScript를 완전히 지원하여 HTML 내의 동적 요소와 인터랙티브 콘텐츠를 포함시킬 수 있으며, 해당 요소들은 생성된 PDF에 정확히 렌더링됩니다.

ASP.NET에서 HTML을 PDF로 변환하는 일반적인 사용 사례는 무엇입니까?

일반적인 사용 사례로는 송장 생성, 상세 보고서 작성, 인증서 제작, 전자책 및 브로셔와 같은 다운로드 가능 콘텐츠를 제공하는 것이 포함됩니다.

IronPDF는 PDF 출력의 품질을 어떻게 보장합니까?

IronPDF는 글꼴, 이미지, 표 및 기타 요소를 포함하여 HTML 콘텐츠를 정확하게 렌더링함으로써 고품질의 PDF 출력을 보장하며, 원본 디자인의 충실성을 유지합니다.

IronPDF로 HTML을 PDF로 변환하는 프로세스를 자동화할 수 있습니까?

예, IronPDF는 ASP.NET 애플리케이션 내의 자동화 워크플로우에 통합될 수 있으며, 이를 통해 애플리케이션의 프로세스의 일부로 HTML을 PDF로 자동 변환할 수 있습니다.

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

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

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

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해