IRONSOFTWAREHOME

C# .NET에서 HTML을 PDF로 변환하기

제이콥 멜러, 팀 아이언 최고기술책임자
Jacob Mellor
Updated: 2026년 9월 17일

IronPDF의 개발자로서, HTML을 PDF로 변환할 때 고객의 기대에 부응하는 정확하고 고품질의 결과를 생성하는 것이 얼마나 중요한지 알고 있습니다. 이 C# 튜토리얼은 애플리케이션, 프로젝트 및 웹사이트를 위한 HTML-to-PDF 변환기를 구축하는 방법을 안내합니다. 우리는 C# HTML-to-PDF 변환기를 개발할 것이며, IronPDF에서 생성된 출력 PDF 문서는 Google Chrome 웹 브라우저에서 생성된 PDF와 픽셀 단위로 동일할 것입니다.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

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

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<p>Hello World</p>")
           .SaveAs("pixelperfect.pdf");
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer

개요


C# 및 VB.NET용 HTML to PDF 변환기

.NET에서 프로그래밍 방식으로 PDF 파일을 생성하는 것은 좌절감을 줄 수 있는 작업입니다. PDF 문서 파일 형식은 개발자보다는 프린터를 위해 설계되었습니다. 그리고 C#에는 PDF 생성에 적합한 라이브러리나 기능이 많이 내장되어 있지 않으며, 많은 라이브러리가 추가 설정이 필요하고 간단한 작업을 수행하기 위해 여러 줄의 코드가 필요하여 추가적인 좌절을 초래합니다.

이 튜토리얼에서 사용할 C# HTML to PDF 변환 도구는 Iron Software의 IronPDF로, 매우 인기 있는 C# PDF 생성 및 편집 라이브러리입니다. 이 라이브러리는 완전한 PDF 편집 및 생성 기능을 제공하며, 즉시 사용할 수 있고, 최소한의 코드 라인으로 필요한 작업을 정확하게 수행하며, 50개 이상의 기능에 대한 뛰어난 문서를 제공합니다. IronPDF는 .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, .NET 5를 지원하며, Windows, macOS, Linux, Docker, Azure 및 AWS에서 .NET Core, .NET Standard 및 .NET Framework를 지원합니다.

C#과 IronPDF를 사용하면 "PDF 문서 생성" 또는 "HTML을 PDF로 변환"하는 로직이 간단합니다. IronPDF의 고급 Chrome Renderer 덕분에 대부분 또는 모든 PDF 문서 디자인 및 레이아웃은 기존 HTML 자산을 사용합니다.

.NET에서 HTML5를 사용한 동적 PDF 생성 방법은 콘솔 애플리케이션, Windows Forms 애플리케이션, WPF, 웹사이트 및 MVC에서도 동일하게 잘 작동합니다.

IronPDF는 또한 픽셀 완벽한 PDF를 위한 Chrome을 사용한 HTML 디버깅을 지원합니다. 이를 설정하는 방법에 대한 튜토리얼은 여기에서 찾을 수 있습니다.

IronPDF는 .NET 생태계 내외에서 여러 언어로 제공됩니다.

IronPDF는 개발용으로 무료이며, 라이브 배포 및 시험 워터마크 제거를 위해 라이선스 키가 필요합니다. 여기에서 라이선스를 구매할 수 있습니다 또는 무료 30일 시험 키를 여기에서 등록할 수 있습니다.


1단계

HTML to PDF C# 라이브러리 다운로드 및 설치

Visual Studio - NuGet 패키지 관리자

Visual Studio에서 프로젝트 솔루션 탐색기를 마우스 오른쪽 버튼으로 클릭하고 Manage NuGet Packages...를 선택합니다. 거기서 IronPDF를 검색하고 최신 버전을 솔루션에 설치합니다... 나타나는 대화 상자에 대해 확인을 클릭합니다. 이는 VB.NET 프로젝트에서도 잘 작동합니다.

PM > Install-Package IronPdf

NuGet 웹사이트의 IronPDF

IronPDF의 기능, 호환성 및 다운로드에 대한 전체 개요는 NuGet의 공식 웹사이트에서 확인하십시오: https://www.nuget.org/packages/IronPdf

DLL을 통한 설치

또 다른 옵션은 IronPDF DLL을 직접 설치하는 것입니다. IronPDF는 https://ironpdf.com/packages/IronPdf.zip에서 다운로드하여 프로젝트 또는 GAC에 수동으로 설치할 수 있습니다.


튜토리얼 방법

C# .NET에서 HTML 문자열로 PDF 생성

어떻게: HTML 문자열을 PDF로 변환합니까? C#에서 새 PDF 파일을 생성하는 것은 매우 효율적이고 보람 있는 기술입니다.

우리는 ChromePdfRenderer.RenderHtmlAsPdf 메서드를 사용하여 HTML(HTML5) 문자열을 PDF로 변환할 수 있습니다. C# HTML to PDF 렌더링은 IronPDF NuGet 패키지와 함께 제공되는 Google Chromium 엔진의 완전한 기능 버전에 의해 수행됩니다.

using IronPdf;

// ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engine
var renderer = new ChromePdfRenderer();

// Render an HTML string. The result is a PdfDocument held in memory
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Write the PDF to disk
pdf.SaveAs("pixel-perfect.pdf");

RenderHtmlAsPdf는 HTML5, CSS3, JavaScript 및 이미지를 완벽하게 지원합니다. 이러한 자산이 하드 디스크에 있는 경우 RenderHtmlAsPdf의 두 번째 매개변수를 자산이 포함된 디렉토리로 설정할 수 있습니다. 이 메서드는 PDF 정보를 보유하는 데 사용되는 클래스인 PdfDocument 객체를 반환합니다.

IronPDF는 Chrome에서 보이는 대로 HTML을 정확하게 렌더링합니다

HTML, CSS 및 JavaScript를 편집할 때 보이는 변경 사항이 IronPDF에서 렌더링할 때 출력 PDF와 픽셀 단위로 동일한지 확인하기 위해 Chrome을 설정할 수 있는 전체 튜토리얼이 있습니다. 튜토리얼은 여기에서 찾을 수 있습니다: How to Debug HTML in Chrome to Create Pixel Perfect PDFs.

기본 URL 경로 (BaseUrlOrPath 인수):

using IronPdf;

var renderer = new ChromePdfRenderer();

// The second argument is the base path. Relative URLs in the HTML (the image
// below, but also stylesheets, scripts and fonts) are resolved against it.
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");

pdf.SaveAs(@"C:\MyProject\Assets\output.pdf");

모든 참조된 CSS 스타일시트, 이미지 및 JavaScript 파일은 해당 기본 경로를 기준으로 하며 깔끔하고 논리적인 구조로 유지할 수 있습니다. 물론 Google Fonts와 같은 웹 글꼴 및 jQuery를 포함하여 온라인에서 이미지, 스타일시트 및 자산을 참조할 수도 있습니다.


기존 URL을 사용하여 PDF 내보내기 | URL을 PDF로

C#으로 기존 URL을 PDF로 렌더링하는 것은 매우 효율적이고 직관적입니다. 이는 또한 팀이 여러 팀에 걸쳐 PDF 디자인 및 백엔드 PDF 렌더링 작업을 분할할 수 있도록 합니다.

다음 예제에서는 Wikipedia.com의 페이지를 렌더링해 보겠습니다:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live web page straight from its URL
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

// The PDF is written next to the executable
pdf.SaveAs("wikipedia.pdf");

우리의 C# 코드로 생성된 PDF 내에서 하이퍼링크 및 HTML 양식이 보존되는 것을 알 수 있습니다.

기존 웹 페이지를 렌더링할 때 적용할 수 있는 몇 가지 트릭이 있습니다:

인쇄 및 화면 CSS

CSS 미디어 유형을 사용하면 페이지가 인쇄 및 화면에 대해 별도의 스타일을 가질 수 있습니다. IronPDF에 "인쇄" CSS를 렌더링하도록 지시할 수 있으며, 이는 종종 더 간단합니다. 기본적으로 "화면" CSS 스타일이 렌더링되며, 이는 브라우저에서 보는 것과 일치합니다.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Choose which CSS media type the page is rendered with.
// Screen (the default) renders the page as a browser displays it;
// Print applies the page's @media print rules instead.

// renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

주요 기사: Pixel Perfect HTML to PDF Comparison.

JavaScript

IronPDF는 JavaScript, jQuery 및 AJAX를 지원합니다. IronPDF에 JS 또는 ajax가 완료될 때까지 기다리도록 지시해야 할 수도 있습니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Let the page's JavaScript run before the snapshot is taken
renderer.RenderingOptions.EnableJavaScript = true;

// Give scripts and AJAX calls 500 milliseconds to finish before rendering.
// For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait
// for a signal instead of a fixed delay.
renderer.RenderingOptions.WaitFor.RenderDelay(500);

JavaScript 지원을 보여주기 위해 페이지 로드 시 JavaScript에 의해 차트가 그려지는 d3.js chord-diagram 문서 페이지를 렌더링할 수 있습니다:

using IronPdf;

var renderer = new ChromePdfRenderer();

// The chart is drawn by JavaScript, so let it run and give it a moment to finish
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);

// Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScript
var pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord");

pdf.SaveAs("chart.pdf");

반응형 CSS

.NET에서 반응형 CSS를 사용하여 HTML을 PDF로 변환합니다! 반응형 웹 페이지는 브라우저에서 보도록 설계되었습니다. IronPDF는 서버의 OS 내에서 실제 브라우저 창을 열지 않습니다. 브라우저 뷰포트가 없으면 반응형 레이아웃이 가장 좁은 브레이크포인트로 돌아갈 수 있습니다.

이 문제를 해결하기 위해 인쇄 CSS 미디어 유형을 사용하는 것이 좋습니다. 인쇄 CSS는 일반적으로 반응형이 아닙니다.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Responsive layouts are designed for a browser viewport, so render the page's
// print stylesheet instead of its screen stylesheet
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

HTML 페이지에서 PDF 생성

하드 디스크에 있는 HTML 페이지를 PDF로 렌더링할 수도 있습니다. CSS, 이미지 및 js와 같은 모든 관련 자산은 file:// 프로토콜을 사용하여 파일을 연 것처럼 렌더링됩니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render an HTML file from disk. Relative CSS, image and script paths
// resolve against the file's own folder, as if opened with file://
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

pdf.SaveAs("Invoice.pdf");

이 방법은 개발 중에 브라우저에서 HTML 콘텐츠를 테스트할 수 있는 기회를 개발자에게 제공합니다. IronPDF의 렌더링 엔진이 기반한 웹 브라우저이기 때문에 Chrome을 권장합니다.

XML을 PDF로 변환하려면 XSLT 템플릿을 사용하여 XML 콘텐츠를 PDF로 인쇄할 수 있습니다.


사용자 정의 헤더 및 푸터 추가

헤더 및 푸터는 IronPDF를 사용하여 렌더링할 때 또는 기존 PDF 파일에 추가할 수 있습니다.

IronPDF를 사용하면 헤더 및 푸터에 TextHeaderFooter 클래스를 사용하여 간단한 텍스트 기반 콘텐츠를 포함할 수 있으며, 이미지 및 풍부한 HTML 콘텐츠를 사용하여 HtmlHeaderFooter 클래스를 사용할 수 있습니다.

using IronPdf;
using IronPdf.Rendering;

// Create a PDF from an existing HTML file with rendering options set up front
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        // Margins are in millimeters
        MarginTop = 50,
        MarginBottom = 50,

        // Render the page's print stylesheet
        CssMediaType = PdfCssMediaType.Print,

        // Plain-text header: the document title, centered, above a divider line
        TextHeader = new TextHeaderFooter
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },

        // Plain-text footer: date and time on the left, page numbers on the right
        TextFooter = new TextHeaderFooter
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        }
    }
};

var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

pdf.SaveAs("Invoice.pdf");

// Open the result in the default PDF viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
    FileName = "Invoice.pdf",
    UseShellExecute = true
});

다음 방법 기사에서 모든 렌더링 옵션을 탐색하십시오: How to Use the Rendering Options.

HTML 헤더 및 푸터

HtmlHeaderFooter 클래스는 이미지 및 스타일시트를 포함할 수 있는 HTML5 콘텐츠를 사용하여 풍부한 헤더 및 푸터를 생성할 수 있습니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// An HTML footer can carry markup, styles and images.
// {page} and {total-pages} are filled in for every page.
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};

PDF 헤더 및 푸터의 동적 데이터

플레이스홀더를 사용하여 헤더 및 푸터의 텍스트 및 HTML에 콘텐츠를 "메일 병합"할 수 있습니다:

  • {page} 현재 페이지 번호
  • {total-pages} PDF의 총 페이지 수
  • {url} 웹 페이지에서 렌더링된 경우 렌더링된 PDF의 URL
  • {date} 오늘 날짜
  • {time} 현재 시간
  • {html-title} 렌더링된 HTML 문서의 <title>
  • {pdf-title} ChromePdfRenderOptions를 통해 설정할 수 있는 문서 제목

C# HTML to PDF 변환 설정

사용자와 클라이언트가 PDF 콘텐츠가 렌더링되기를 기대하는 방식에는 많은 미묘한 차이가 있습니다.
ChromePdfRenderer 클래스에는 이러한 옵션을 설정하는 데 사용할 수 있는 RenderingOptions 속성이 포함되어 있습니다.

예를 들어, "print" 스타일 CSS3 지시문만 수락하도록 선택할 수 있습니다:

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Render the page's @media print CSS rather than its screen styles
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf");

또한 페이지에 더 많은 여백을 만들어 큰 헤더나 푸터를 위한 공간을 만들거나 브로셔나 포스터의 상업적 인쇄를 위해 여백을 0으로 설정하기 위해 인쇄 여백의 크기를 변경할 수도 있습니다:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Page margins in millimeters. Larger margins leave room for headers and
// footers; set them to 0 for edge-to-edge brochures and posters.
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

HTML 요소의 배경 이미지를 켜거나 끌 수도 있습니다:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Include CSS background colors and images in the PDF (set false to drop them)
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

var pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>");

pdf.SaveAs("output.pdf");

출력 PDF를 가상 용지 크기로 렌더링하도록 설정할 수도 있으며, 세로 및 가로 크기 및 밀리미터 또는 인치로 설정할 수 있는 사용자 정의 크기도 포함됩니다.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Standard paper sizes and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

// Or a custom size, in millimeters or inches
// renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297);
// renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

다음 방법 기사에서 모든 렌더링 옵션을 탐색하십시오: "How to Use the Rendering Options."


이 종류의 라이브러리 중 가장 좋아하는 것은 IronPDF입니다. PDF 파일을 빠르고 효율적으로 조작할 수 있습니다. 또한 PDF/A 형식으로 내보내기 및 PDF 문서의 디지털 서명과 같은 많은 유용한 기능을 가지고 있습니다.

Milan Jovanovic

마이크로소프트 MVP

사례 연구 보기

IronOCR 덕분에 연간 $40,000를 수동 프로세싱에서 절약하고 생산성을 높이며 고부가가치 작업에 자원을 활용할 수 있습니다. 강력히 추천합니다.

브렌트 마첼

최고 기술 책임자, OPYN

사례 연구 보기

HTML 템플릿 적용

인터넷 및 웹사이트 개발자에게 PDF를 템플릿화하거나 "배치 생성"하는 것은 일반적인 요구 사항입니다.

PDF 문서 자체를 템플릿화하는 대신, IronPDF를 사용하여 기존의 잘 검증된 기술을 사용하여 HTML을 템플릿화할 수 있습니다. HTML 템플릿이 쿼리 문자열 또는 데이터베이스의 데이터와 결합되면 동적으로 생성된 PDF 문서가 생성됩니다.

가장 간단한 경우, C# String.Format 메서드를 사용하여 기본 샘플을 생성하는 것이 효과적입니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Insert a value into an HTML template with string.Format
string html = string.Format("<h1>Hello {0}!</h1>", "World");

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("Hello.pdf");

HTML 파일이 더 긴 경우 [[NAME]]과 같은 임의의 플레이스홀더를 사용하고 나중에 실제 데이터로 대체할 수 있습니다.

다음 예제는 각 사용자에게 개인화된 3개의 PDF를 생성합니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// A template with a placeholder to replace
var htmlTemplate = "<p>[[NAME]]</p>";

var names = new[] { "John", "James", "Jenny" };

// One personalized PDF per name
foreach (var name in names)
{
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    pdf.SaveAs(name + ".pdf");
}

Handlebars.NET을 사용한 고급 템플릿

C# 데이터와 HTML을 병합하여 PDF를 생성하는 정교한 방법은 Handlebars 템플릿 언어를 사용하는 것입니다.

Handlebars는 C# 객체 및 클래스 인스턴스를 포함하여 데이터베이스 레코드에서 동적 HTML을 생성할 수 있게 합니다. Handlebars는 청구서 생성과 같이 쿼리가 알 수 없는 수의 행을 반환할 수 있는 경우 특히 효과적입니다.

프로젝트에 추가 NuGet 패키지를 추가해야 합니다: https://www.nuget.org/packages/Handlebars.NET/

using HandlebarsDotNet;

// A Handlebars template with two placeholders
var source =
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";

// Compile it once, then fill it with any object that has matching properties
var template = Handlebars.Compile(source);

var data = new { title = "My new post", body = "This is my first post!" };

string html = template(data);

// html now contains:
//
// <div class="entry">
//   <h1>My new post</h1>
//   <div class="body">
//     This is my first post!
//   </div>
// </div>

이 HTML을 렌더링하려면 RenderHtmlAsPdf 메서드를 간단히 사용하면 됩니다.

using HandlebarsDotNet;
using IronPdf;

// Fill the Handlebars template, then render the resulting HTML
var template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>");
string html = template(new { title = "My new post", body = "This is my first post!" });

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("Handlebars.pdf");

Handlebars 템플릿 언어 및 C# 구현에 대한 자세한 내용은 GitHub에서 확인할 수 있습니다.

HTML5를 사용하여 페이지 나누기 추가

PDF 문서에서 일반적인 요구 사항은 페이지 매김입니다. 개발자는 깨끗하고 읽기 쉬운 레이아웃을 위해 PDF 페이지의 시작과 끝을 제어해야 합니다.

이를 수행하는 가장 쉬운 방법은 인쇄된 HTML 문서에 페이지 나누기를 렌더링하는 잘 알려지지 않은 CSS 트릭을 사용하는 것입니다.

<div style='page-break-after: always;'>&nbsp;</div>
HTML

제공된 HTML은 작동하지만 최선의 방법은 아닙니다. 미디어 속성을 다음 예제와 같이 조정하는 것이 좋습니다. 여러 페이지 HTML 콘텐츠를 깔끔하고 정돈된 방식으로 레이아웃하는 방법입니다. IronPDF는 기본적으로 screen 미디어 유형으로 렌더링하므로, RenderingOptions.CssMediaType이 PdfCssMediaType.Print로 설정된 경우에만 media="print" 스타일시트가 적용됩니다 (위의 변환 설정 참조).

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page {
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
HTML

방법 기사에서는 페이지 나누기 팁과 요령을 더 많이 다룹니다.


PDF에 표지 페이지 첨부

IronPDF는 PDF 문서를 병합하는 것을 쉽게 만듭니다. 이 기술의 가장 일반적인 사용법은 기존 렌더링된 PDF 문서에 표지 페이지나 뒷페이지를 추가하는 것입니다.

이를 위해 먼저 표지 페이지를 렌더링한 다음 PdfDocument.Merge() 정적 메서드를 사용하여 두 문서를 결합합니다.

using IronPdf;

var renderer = new ChromePdfRenderer();

// The document body, rendered from a web page
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");

// Prepend an existing PDF as the cover page. Merge returns a new document.
var cover = PdfDocument.FromFile("CoverPage.pdf");
var pdfMerged = PdfDocument.Merge(cover, pdf);

pdfMerged.SaveAs("Combined.pdf");

전체 코드 예제는 여기에서 찾을 수 있습니다: PDF Cover Page Code Example.


워터마크 추가

IronPDF가 지원하는 최종 C# PDF 기능은 문서에 워터마크를 추가하는 것입니다. 이는 문서의 각 페이지에 "기밀" 또는 "샘플"이라는 공지를 추가하는 데 사용할 수 있습니다.

using IronPdf;
using IronPdf.Editing;

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

// Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.
// The watermark is HTML, so any markup, styling or image can be used.
pdf.ApplyWatermark(
    "<h2 style='color:red; font-size:50px'>SAMPLE</h2>",
    rotation: 30,
    opacity: 50,
    verticalAlignment: VerticalAlignment.Middle,
    horizontalAlignment: HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");

전체 코드 예제는 여기에서 찾을 수 있습니다: PDF Watermarking Code Example.


C# 소스 코드 다운로드

이 튜토리얼의 전체 무료 HTML to PDF 변환기 C# 소스 코드는 Visual Studio 2022 프로젝트 파일로 압축된 형태로 다운로드할 수 있습니다. C#에서 PDF 문서 객체를 생성하기 위해 렌더링 엔진을 사용할 것입니다.

이 튜토리얼을 Visual Studio 프로젝트로 다운로드

무료 다운로드에는 HTML에서 PDF를 생성하는 데 필요한 모든 것이 포함되어 있습니다 - 여기에는 다음을 위한 작동하는 C# PDF 코드 예제 코드가 포함됩니다:

  1. C#을 사용하여 HTML 문자열을 PDF로 변환
  2. C#에서 HTML 파일을 PDF로 변환 (CSS, JavaScript 및 이미지 지원)
  3. URL을 사용하여 C# HTML을 PDF로 변환 ("URL to PDF")
  4. C# PDF 편집 및 설정 예제
  5. d3.js와 같은 JavaScript 캔버스 차트를 PDF로 렌더링
  6. C#용 PDF 라이브러리

클래스 참조

개발자는 IronPdf.PdfDocument 클래스 참조에도 관심이 있을 수 있습니다:

https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html

이 객체 모델은 PDF 문서가 다음과 같이 될 수 있음을 보여줍니다:

  • 암호화 및 비밀번호 보호
  • 새로운 HTML 콘텐츠로 편집 또는 '스탬프' 처리
  • 전경 및 배경 이미지로 향상
  • 페이지 또는 문서 수준에서 병합, 결합, 잘라내기 및 연결
  • IronOCR 패키지를 사용하여 일반 텍스트 및 이미지를 추출하거나 OCR 처리

Blazor HTML to PDF

Blazor 서버에 HTML to PDF 기능을 추가하는 것은 간단합니다:

  1. 새 Blazor 서버 프로젝트를 생성하거나 기존 프로젝트를 사용
  2. NuGet을 사용하여 프로젝트에 IronPDF 라이브러리 추가
  3. 새 Razor 구성 요소를 추가하거나 기존 구성 요소 사용
  4. InputTextArea를 추가하고 IronPDF에 연결
  5. IronPDF가 나머지를 처리하고 배포

추가 읽기를 위해, Blazor 애플리케이션에서 HTML을 PDF로 변환하는 전체 단계별 가이드를 계속 읽으십시오.

IronPDF로 Blazor 서버 페이지에서 생성된 PDF

다른 PDF 라이브러리와 비교

IronPDF는 현대 .NET 개발자를 위해 맞춤화된 강력하고 기능이 풍부한 PDF 라이브러리입니다. 고급 Chromium 엔진으로 구동되는 네이티브 HTML-to-PDF 변환, 직관적인 API 및 정기적인 업데이트를 통해 개발을 단순화하면서 고품질 결과를 보장합니다. 다른 도구와 비교하여 자세히 살펴보겠습니다:

PDFSharp

  • 핵심 기능: PDFsharp는 관리 코드에서 PDF 문서를 생성하고 편집하기 위한 오픈 소스(MIT) 라이브러리입니다. HTML 렌더링 엔진이 없으므로 웹 콘텐츠를 PDF로 변환하려면 별도의 서드파티 렌더러가 필요합니다.
  • 최신 표준: IronPDF는 Chromium 기반 엔진을 통해 HTML, CSS, JavaScript를 포함한 최신 웹 기술을 활용하여 PDF가 현대적인 외관과 느낌을 유지하도록 합니다.
  • 지원 및 업데이트: PDFsharp는 오픈 소스로 몇 달마다 릴리스를 제공하며, 상업적 지원은 유지 관리자가 별도로 판매합니다. IronPDF는 매월 릴리스와 보안 패치를 제공하며, 모든 라이선스에는 엔터프라이즈 애플리케이션에 중요한 전문 엔지니어링 지원이 포함됩니다.

wkhtmltopdf

  • 통합의 용이성: wkhtmltopdf는 C 라이브러리를 사용하는 명령줄 도구입니다. 공식 .NET 패키지가 없으므로 .NET에서 사용하려면 네이티브 바이너리를 실행하거나 DinkToPdf와 같은 서드파티 래퍼를 통해 호출하고 배포할 모든 플랫폼에 해당 바이너리를 제공해야 합니다.
  • 렌더링 기술: wkhtmltopdf는 QtWebKit으로 렌더링하며, 이는 Qt가 2015년에 사용 중단하고 Qt 5.6에서 제거한 WebKit 포크입니다. 따라서 최신 JavaScript 및 CSS 기능은 지원되지 않으며, 특히 동적이고 콘텐츠가 풍부한 웹사이트에서 문제가 됩니다. IronPDF의 Chromium 엔진은 최신 웹 표준을 렌더링합니다.
  • 지속적인 개발: wkhtmltopdf의 마지막 릴리스는 2020년 6월의 0.12.6이며, GitHub 저장소는 2023년 1월에 아카이브되었습니다. 따라서 공급업체 지원이 없습니다. IronPDF는 매월 업데이트와 전담 고객 서비스를 통해 계속 발전하고 있습니다.

iTextSharp

  • HTML-to-PDF 렌더링: iText는 별도의 pdfHTML 애드온을 통해 HTML을 변환하며, 이는 브라우저가 아닌 CSS 레이아웃 엔진입니다. 레거시 iTextSharp 5 라인은 이제 보안 수정만 받습니다. IronPDF는 코어 패키지에 내장된 Chromium 엔진으로 HTML을 렌더링하며, 애드온이 필요하지 않습니다.
  • 개발자 경험: iText의 API는 PDF 객체 및 레이아웃 요소 수준에서 작동하여 강력하지만 일상적인 작업에 더 많은 코드를 필요로 합니다. IronPDF는 깔끔하고 직관적인 C# API를 제공하여 코딩을 단순화하고 프로젝트 전달 속도를 높입니다.
  • 유지보수 및 지원: iText의 무료 사용은 AGPL 하에 있으며, 공급업체 지원은 상업적 라이선스에만 제공됩니다. iTextSharp 5.x는 보안 수정 외에는 수명이 종료되었습니다. IronPDF는 모든 라이선스에 전문 지원과 매월 업데이트를 포함합니다.

Aspose.PDF

  • 변환 품질: Aspose.PDF는 브라우저가 아닌 자체 레이아웃 엔진으로 HTML을 변환합니다. 문서는 HttpClient로 HTML을 스트림으로 가져와 HtmlLoadOptions와 함께 Document에 전달하여 웹 페이지를 변환합니다. 아래의 r/nfl 테스트에서 출력은 거의 비어 있었습니다: 커뮤니티 로고, 하나의 헤드라인 및 몇 개의 빈 상자. IronPDF의 Chromium 엔진은 JavaScript를 포함하여 URL을 직접 렌더링합니다.
  • API 사용성: Aspose.PDF의 API는 장황할 수 있으며, IronPDF는 개발자 친화적인 경험에 중점을 두어 설정 시간을 최소화하고 생산성을 높입니다.
  • 출력 충실도: IronPDF는 Chromium으로 렌더링하므로 PDF는 동일한 HTML에 대해 Chrome이 보여주는 것과 일치하여 대량 PDF 생성에 있어 디자인 및 디버깅을 예측 가능하게 만듭니다.

Syncfusion PDF

  • API 복잡성: Syncfusion PDF는 학습해야 할 더 큰 API 표면을 가진 강력한 라이브러리입니다. 반면 IronPDF는 빠른 통합을 위한 간단한 API를 제공합니다.
  • 렌더링 엔진: Syncfusion의 HTML 변환기는 이제 Chromium Blink 엔진을 사용합니다. 이전의 WebKit 및 Internet Explorer 엔진은 Essential Studio 2022 Volume 3에서 사용 중단되었습니다. 아래의 r/nfl 테스트에서 Syncfusion의 출력은 주요 피드를 유지했지만 탐색 및 커뮤니티 패널을 삭제했습니다. IronPDF의 Chromium 엔진은 전체 페이지를 렌더링했습니다.
  • 변환을 넘어서: IronPDF의 패키지는 디지털 서명, 주석, 양식 채우기 및 바코드 스탬핑도 다루므로 동일한 라이브러리가 문서 워크플로의 나머지를 처리합니다.

렌더링 비교

이 라이브러리들의 HTML-to-PDF 변환 품질을 비교하기 위해, 동적 콘텐츠, 실시간 업데이트, 최신 CSS 및 JavaScript 기반 요소를 포함한 Reddit 커뮤니티 페이지 r/nfl을 사용했습니다:

https://www.reddit.com/r/nfl/

Chrome에서 표시된 r/nfl Reddit 페이지의 스크린샷

각 라이브러리의 기본 설정으로 단일 실행에서의 결과는 다음과 같습니다. Syncfusion과 Aspose.PDF는 평가판 빌드로 실행되었으므로 출력에 평가 워터마크가 포함되어 있습니다 (각 이미지를 클릭하여 확대된 이미지를 볼 수 있습니다):

IronPDF

IronPDF의 r/nfl Reddit 페이지 HTML to PDF 변환 출력동적 콘텐츠와 최신 스타일을 보존한 잘 형식화되고 시각적으로 정확한 PDF.

SyncFusion

Syncfusion의 r/nfl Reddit 페이지 HTML to PDF 변환 출력평가판 빌드로 변환됨. 주요 피드, 게시물 콘텐츠 및 스타일은 좁은 단일 열 레이아웃으로 전달되었지만 왼쪽 탐색 및 오른쪽 커뮤니티 패널은 삭제되었습니다.

Aspose.PDF

Aspose.PDF의 r/nfl Reddit 페이지 HTML to PDF 변환 출력평가판 빌드; HTML을 먼저 다운로드해야 했습니다 (Aspose.PDF는 URL이 아닌 스트림에서 HTML을 로드합니다). 출력은 거의 비어 있었습니다: 커뮤니티 로고, 하나의 헤드라인 및 몇 개의 빈 상자.

Wkhtmltopdf

wkhtmltopdf의 r/nfl Reddit 페이지 HTML to PDF 변환 출력wkhtmltopdf는 변환을 완료했지만 결과는 페이지의 텍스트와 이미지로, 레이아웃, 스타일링, 동적 요소 또는 상호작용성이 전혀 없습니다. 이는 wkhtmltopdf가 현대적이고 동적인 웹 페이지에 적합하지 않음을 의미합니다.
참고해 주세요: PDFsharp는 HTML 렌더링 엔진이 없고, iText는 별도의 pdfHTML 애드온을 통해서만 HTML을 변환하므로 이 브라우저 렌더링 테스트에 포함되지 않았습니다.

결론

.NET 개발자가 현대적이고 신뢰할 수 있는 PDF 솔루션을 찾고 있다면, IronPDF는 강력한 선택입니다. Chromium 기반의 HTML-to-PDF 변환, 사용의 용이성, 정기적인 업데이트 및 광범위한 기능 세트는 최고의 선택으로 만듭니다. 작은 프로젝트든 대규모 엔터프라이즈 애플리케이션이든, IronPDF는 생산성을 향상시키면서 구식 또는 지원되지 않는 라이브러리와 관련된 위험을 피할 수 있습니다. 상업적 애플리케이션을 위해 설계된 IronPDF는 프로젝트를 유지 관리되고 지원되는 라이브러리로 유지합니다.

실제 동적 웹 페이지로 테스트한 결과, IronPDF는 가장 완전하고 정확한 렌더링을 제공했습니다. Syncfusion은 탐색 및 커뮤니티 패널을 삭제했습니다. Aspose.PDF는 HTML을 먼저 다운로드해야 했고 페이지의 거의 아무것도 렌더링하지 않았습니다. wkhtmltopdf는 페이지의 스타일링 없이 텍스트와 이미지를 생성하여 현대 사이트에 적합하지 않았습니다.

현대적인 HTML-to-PDF 워크플로우에서는 렌더링 정확성과 작고 읽기 쉬운 API의 조합이 IronPDF를 돋보이게 합니다.

IronPDF의 전체 기능 세트를 경험해 보세요. 동적이고 무거운 CSS HTML을 쉽게 PDF로 변환합니다. 지금 무료 평가판으로 테스트해 보세요.


C# 튜토리얼 비디오에서 HTML을 PDF로 변환하는 방법 보기

PDF 문서와 함께, Chrome에서 PDF를 다운로드하지 않고 브라우저에서 열도록 설정하는 방법을 배우기 위해 다음 링크를 방문할 수 있습니다.

첫 번째 단계:
arrow pointer

자주 묻는 질문

C#에서 IronPDF를 사용하여 HTML을 PDF로 어떻게 변환하나요?

IronPDF를 사용하여 HTML을 PDF로 변환하려면 ChromePdfRenderer를 초기화하고 RenderHtmlAsPdf 메서드를 사용하여 HTML 콘텐츠를 PDF로 렌더링한 다음 PDF를 파일로 저장해야 합니다.

IronPDF의 시스템 요구 사항은 무엇인가요?

IronPDF는 Windows, macOS, Linux, Docker, Azure 및 AWS에서 .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard 및 .NET Framework를 지원합니다.

IronPDF를 다른 프로그래밍 언어와 함께 사용할 수 있나요?

네, IronPDF는 .NET 생태계 내외의 여러 언어와 함께 사용할 수 있으며, F#, VB.NET, Python, Java 및 Node.js를 포함합니다.

IronPDF를 사용하여 PDF에 사용자 정의 헤더와 푸터를 추가할 수 있나요?

IronPDF를 사용하면 TextHeaderFooter 클래스를 사용하여 텍스트 기반 콘텐츠를, HtmlHeaderFooter 클래스를 사용하여 풍부한 HTML 콘텐츠를 추가할 수 있습니다.

IronPDF로 기존 URL에서 PDF를 렌더링할 수 있나요?

네, IronPDF의 RenderUrlAsPdf 메서드를 사용하여 기존 URL에서 PDF를 렌더링할 수 있습니다.

IronPDF는 고급 CSS 및 JavaScript 렌더링을 지원하나요?

네, IronPDF는 jQuery 및 AJAX를 포함한 고급 CSS3 및 JavaScript를 지원하여 현대 웹 디자인을 정확하게 렌더링합니다.

IronPDF에서 배치 PDF 생성을 위해 HTML 템플릿을 적용할 수 있나요?

네, C# 템플릿 기법을 사용하여 String.Format 및 Handlebars.NET을 포함하여 IronPDF로 동적으로 PDF를 생성할 수 있습니다.

IronPDF는 다른 PDF 라이브러리와 어떻게 비교되나요?

IronPDF는 내장된 Chromium 엔진으로 HTML을 렌더링하고, 매월 업데이트를 제공하며, 간결한 C# API를 가지고 있습니다. 튜토리얼은 PdfSharp, wkhtmltopdf, iTextSharp, Aspose.PDF 및 Syncfusion PDF와 비교하며, 동적 웹 페이지의 병렬 렌더링 테스트를 포함합니다.

IronPDF로 PDF에 워터마크를 추가할 수 있나요?

네, IronPDF를 사용하여 PDF 문서에 텍스트 또는 이미지 워터마크를 추가할 수 있습니다.

IronPDF의 체험판 버전이 있나요?

네, IronPDF의 기능을 구매하기 전에 테스트할 수 있는 무료 30일 체험 키를 등록할 수 있습니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

...
더 읽어보기

시작할 준비 되셨나요?

Nuget Downloads 21,253,952버전:2026.10방금 출시

무료로 받기

30일 체험 키를 즉시 받으세요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.
bullet_test워터마크 없이
프로덕션에서 테스트
bullet_calendar30일 완전한
기능의 제품
bullet_support체험 기간 동안
24/5 기술 지원
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronPDF"를 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.10

또는 여기에서 Windows 설치 프로그램을 다운로드하십시오.

  1. IronPDF를 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronPDF.dll"을 선택합니다.

라이선스 가격은 999달러 부터 시작합니다.

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
고객님의 정보는 항상 비밀로 유지됩니다.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronPDF"를 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.10

또는 여기에서 Windows 설치 프로그램을 다운로드하십시오.

  1. IronPDF를 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronPDF.dll"을 선택합니다.

라이선스 가격은 999달러 부터 시작합니다.