이 페이지에는 자동 번역된 텍스트가 포함될 수 있습니다.

.NET용 HTML에서 PDF로

Docotic.Pdf 라이브러리를 사용하면 HTML을 PDF로 변환할 수 있습니다. 라이브러리의 무료 HtmlToPdf 추가 기능을 사용하면 HTML, SVG, WEBP 및 기타 웹 형식을 PDF로 변환할 수 있습니다.

이 가이드에서는 추가 기능이 제공하는 HTML to PDF 기능을 설명하고, 함께 논의하는 주제에 대한 추가 세부 정보를 제공하는 페이지 링크를 포함합니다.

HTML to PDF 라이브러리 내부의 처리 과정을 보여주는 그림. HTML 문서가 라이브러리에 입력되면 PDF 출력이 생성됩니다.

C#에서 HTML을 PDF로 변환하는 기본 사항

HtmlToPdf 추가 기능, 변환 코드 조각, 라이선스 키가 필요합니다. 무료 평가판 키로 시작할 수 있습니다.

NuGet에서 추가 기능 설치

Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf

이 방법은 종속성과 업데이트를 자동으로 처리하므로 권장됩니다. Docotic.Pdf 바이너리가 포함된 zip에서 추가 기능을 수동으로 설치할 수도 있지만, 더 복잡하고 오류가 발생하기 쉽습니다.

라이선스 키 얻기

라이브러리를 시험하려면 Docotic.Pdf 다운로드 페이지에서 무료 기간 제한 라이선스 키를 받으세요. 이미 라이선스를 구매했다면 구매 후 제공된 코드를 사용하세요.

모든 Docotic.Pdf 라이선스에는 HTML to PDF 기능이 포함됩니다. 추가 기능을 사용하기 위해 별도의 라이선스를 구매할 필요는 없습니다.

변환 코드를 추가합니다

BitMiracle.Docotic.LicenseManager.AddLicenseData("PUT-LICENSE-HERE");

using var converter = await HtmlConverter.CreateAsync();
var html = "<h1>Hello, World<h1>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");

코드에서 AddLicenseData 메서드 호출의 자리 표시자 값을 유효한 라이선스 키로 바꾸세요.

코드를 실행합니다

변환 코드는 문자열의 HTML 코드로부터 PDF를 생성합니다. 기본 변환 옵션을 사용하면 출력에는 A4 크기 페이지가 하나 포함됩니다.

이 라이브러리는 변환을 사용자 지정할 수 있는 다양한 옵션을 제공합니다. 출력 크기를 변경하거나 생성된 페이지에 머리글과 바닥글을 추가할 수 있습니다. 인증이 필요한 리소스를 변환하는 것도 가능합니다.

전용 문서에서 HTML을 PDF로 변환하는 여러 방법을 자세히 설명합니다.

Docotic.Pdf가 적합한 HTML to PDF 변환기인 이유?

변환 중 스타일과 레이아웃을 유지할 수 있다는 점 때문에 Docotic.Pdf는 HTML 보고서, 청구서 및 기타 문서를 PDF로 생성하는 데 적합한 선택입니다. 이 라이브러리는 HTML 및 SVG와 같은 다른 웹 형식에서 픽셀 단위까지 정확한 PDF 문서를 생성합니다. 기존 HTML 콘텐츠를 재사용하는 것도 쉽습니다.

이 변환기는 Google Chrome 렌더링 엔진을 사용합니다. 이는 최고의 웹 브라우저 중 하나와 같은 수준의 웹 표준 호환성을 의미합니다.

Docotic.Pdf를 사용하면 최신 CSS, JavaScript, 이미지를 포함한 매우 복잡한 레이아웃에서 PDF를 생성할 수 있습니다. 반응형 웹 디자인도 매우 잘 지원됩니다.

API 아키텍처 개요

HTML to PDF API는 무료 HtmlToPdf 추가 기능과 함께 Docotic.Pdf를 사용할 때만 제공됩니다.

이 추가 기능은 비동기 전용 API를 제공합니다. 우리는 async 이벤트 핸들러와 async 메서드에서 작동하도록 설계했습니다. 이 설계는 장시간 실행되는 작업을 원활하게 처리할 수 있게 해 주며, 미디어 변환은 이러한 작업의 이상적인 예입니다.

.NET 버전 및 플랫폼 지원

라이브러리와 추가 기능의 대상은 .NET Standard 2.0입니다. 즉 둘 다 .NET 5부터 .NET 10까지 호환됩니다. 또한 .NET Core 2.0+ 및 .NET Framework 4.6.1+도 지원됩니다.

Windows Forms, WPF, ASP.NET 및 콘솔 애플리케이션에서 HTML to PDF 기능을 사용할 수 있습니다. 추가 기능은 클라우드 환경 및 Docker 컨테이너에서 실행할 수 있습니다.

추가 기능을 사용하면 Windows, macOS 및 Linux 환경에서 HTML로부터 PDF를 생성할 수 있습니다.

변환 중에는 어떤 일이 일어나는가?

기본적으로 변환은 다음 단계로 구성됩니다.

  1. 코드가 HtmlConverter 클래스CreateAsync 메서드를 호출합니다.
  2. 추가 기능은 현재 작업 디렉터리 내부의 .local-chromium 폴더에 적합한 버전의 Google Chrome이 있는지 확인합니다.
  3. 적합한 버전이 없으면 추가 기능이 하나를 다운로드하여 .local-chromium 폴더에 압축을 풉니다.
  4. 코드가 CreatePdfAsync 또는 CreatePdfFromStringAsync 메서드를 호출하면 추가 기능은 Google Chrome을 사용해 제공된 HTML을 로드합니다.
  5. 콘텐츠가 변환할 준비가 되면, 추가 기능은 브라우저에 PDF 생성을 지시합니다.
  6. Google Chrome은 Chromium의 렌더링 기능을 사용해 PDF를 생성합니다.
  7. 추가 기능은 생성된 PDF를 포함한 PdfDocument를 코드에 반환합니다.

클라우드 플랫폼 및 Docker 이미지

HtmlToPdf 추가 기능은 서버리스 환경을 포함한 Azure 및 AWS 클라우드 플랫폼을 지원합니다. Docker 컨테이너에서도 HTML to PDF API를 사용할 수 있습니다. 지원되는 환경 목록은 다음과 같습니다.

  • Azure: Azure Functions, Azure App Service, Azure VPS
  • Amazon Web Services: AWS ECS, Amazon EC2
  • Docker: Windows 및 Linux 컨테이너.

라이브러리와 추가 기능은 동적 하드웨어 변경, 자동 확장 및 기타 클라우드 네이티브 런타임 기능을 완전히 지원합니다.

자세한 내용은 추가 기능을 클라우드 및 Docker 이미지에서 실행하는 방법에 대한 문서를 참조하세요.

대부분의 클라우드 시나리오에서는 바인딩되지 않은 라이선스가 필요합니다. License FAQ에서는 클라우드 앱에 적합한 라이선스를 선택하는 방법을 설명합니다.

HTML 템플릿에서 PDF를 생성하는 방법

다음의 간단한 단계를 따르세요.

  1. 템플릿에 사용할 데이터를 가져옵니다.
  2. 데이터를 템플릿에 채워 완전한 HTML을 생성합니다.
  3. Docotic.Pdf를 사용해 완전한 HTML을 PDF로 변환합니다.

HTML 템플릿에서 PDF를 생성하는 방법을 보여주는 그림. 자리 표시자 데이터가 템플릿을 완성한 뒤 PDF로 변환됩니다.

템플릿 데이터는 일반적으로 데이터베이스 또는 API 응답에서 가져옵니다. 데이터베이스의 경우 단일 레코드 또는 레코드 집합이 될 수 있습니다. API의 경우 하나 이상의 엔터티를 설명하는 JSON 개체인 경우가 많습니다.

아래 예제에서는 다음 가상 인물을 사용합니다.

var person = new
{
    Name = "Alice Johnson",
    Age = 27,
    Email = "alicej@example.com",
    Occupation = "Truck driver"
};

이제 데이터를 준비했으므로 HTML 템플릿을 준비하고 채우는 세 가지 방법을 소개하겠습니다. 세 경우 모두 대응하는 템플릿은 다르지만 결과적으로 생성되는 완전한 HTML은 동일합니다.

완전한 HTML을 변환하려면 제가 이미 제공한 코드를 사용하세요.

명명된 자리 표시자

명명된 자리 표시자는 영숫자가 아닌 기호를 사용하는 이중 구분 기호로 둘러싸인 토큰입니다. 가장 충돌에 강한 구분 기호 중 하나는 %%입니다.

다음은 명명된 자리 표시자를 사용하는 템플릿과, 이를 통해 완전한 HTML을 생성하는 코드입니다.

var template = @"<head><title>%%NAME%%'s Profile</title></head>
<body>
    <h1>%%NAME%%</h1>
    <p><strong>Age:</strong> %%AGE%%</p>
    <p><strong>Email:</strong> %%EMAIL%%</p>
    <p><strong>Occupation:</strong> %%OCCUPATION%%</p>
</body></html>";

var completeHtml = template
    .Replace("%%NAME%%", person.Name)
    .Replace("%%AGE%%", person.Age.ToString())
    .Replace("%%EMAIL%%", person.Email)
    .Replace("%%OCCUPATION%%", person.Occupation);

대부분의 경우 명명된 자리 표시자를 사용하는 것이 권장되는 방법입니다. 다만 자리 표시자 위치에 삽입하는 모든 값은 반드시 이스케이프해야 한다는 점을 기억하세요.

템플릿 엔진

템플릿이 매우 복잡하거나 재사용 가능한 부분이 필요하다면 명명된 자리 표시자는 그다지 편리하지 않을 수 있습니다. 대신 Handlebars.Net 같은 템플릿 엔진을 사용해 보세요.

다음은 다른 템플릿과 코드를 사용하지만 동일한 HTML을 생성하는 예제입니다.

var template = @"<head><title>{{name}}'s Profile</title></head>
<body>
    <h1>{{name}}</h1>
    <p><strong>Age:</strong> {{age}}</p>
    <p><strong>Email:</strong> {{email}}</p>
    <p><strong>Occupation:</strong> {{occupation}}</p>
</body></html>";

var compiledTemplate = Handlebars.Compile(template);
var completeHtml = compiledTemplate(person);

Handlebars.Net 템플릿은 로직이 없습니다. 이것이 너무 제한적으로 느껴진다면 Scriban을 사용해 보세요. 조건문, 반복문, 식, 함수 호출 등을 제공합니다.

위치 기반 자리 표시자

이것들은 명명된 자리 표시자와 매우 비슷하지만 이름 대신 위치 번호를 사용합니다. string.Format 메서드 호출에서 이미 보셨을 것입니다.

var template = @"<head><title>{0}'s Profile</title></head>
<body>
    <h1>{1}</h1>
    <p><strong>Age:</strong> {2}</p>
    <p><strong>Email:</strong> {3}</p>
    <p><strong>Occupation:</strong> {4}</p>
</body></html>";

var completeHtml = string.Format(
    template, person.Name, person.Name,
    person.Age, person.Email, person.Occupation);

가장 단순한 경우를 제외하면 위치 기반 자리 표시자는 사용하지 않는 것을 권장합니다. 이유는 다음과 같습니다.

  • 템플릿에서 하나의 값을 여러 번 사용하면, 호출 시 그 값을 여러 번 제공해야 합니다.
  • 템플릿에서 순서를 바꾸고 코드 업데이트를 잊는 실수가 쉽게 발생합니다.

ASPX를 PDF로 변환

무료 HtmlToPdf 추가 기능과 함께 Docotic.Pdf를 사용해 ASPX를 PDF로 변환하세요. 과정은 간단합니다.

  • 생성된 HTML을 누적하는 Render 메서드 구현을 제공합니다.
  • ASP.NET 엔진이 서버 측 코드와 컨트롤을 실행하여 ASPX 페이지의 HTML을 생성하게 합니다.
  • 누적된 HTML을 PDF로 변환하고 업데이트된 응답에서 PDF를 반환합니다.

ASP.NET Web Forms 애플리케이션에서 ASPX 페이지로부터 PDF를 생성하는 방법은 샘플 코드를 확인하세요. 샘플 애플리케이션은 HTML 또는 PDF 형식으로 청구서를 생성하여 위 과정을 보여줍니다. 같은 접근 방식을 사용해 보고서, 명세서 및 기타 문서의 고충실도 PDF 버전을 만들 수 있습니다.

SVG를 PDF로 변환

Docotic.Pdf 라이브러리의 HtmlToPdf 추가 기능을 사용하면 SVG를 벡터 PDF로 변환할 수 있습니다. HtmlConverter 클래스를 SVG to PDF 변환기로 사용할 수 있습니다. 다음 C# 코드는 변환을 수행하는 한 가지 방법을 보여줍니다.

using var converter = await HtmlConverter.CreateAsync();
var uri = new Uri("https://bitmiracle.com/images/team.svg");
using var pdf = await converter.CreatePdfAsync(uri);
pdf.Save("output.pdf");

위 코드의 결과는 고품질 벡터 PDF입니다. HtmlToPdf 추가 기능이 제공하는 변환기는 SVG에 지정된 너비와 높이를 사용해 가로세로 비율을 결정합니다. SVG 크기에 따라 변환기는 PDF 페이지에 맞도록 SVG를 비례적으로 축소할 수 있습니다.

출력 크기에 영향을 주는 옵션

다른 크기의 PDF를 만들려면 페이지 크기 및/또는 여백을 설정하세요. 변환된 SVG는 여전히 비례적으로 축소될 수 있습니다.

또 다른 방법은 HTML 코드에서 SVG의 너비 및/또는 높이를 지정한 뒤 해당 HTML을 변환하는 것입니다. 출력에서는 이미지가 지정한 크기로 표시됩니다. 크기가 PDF 페이지보다 크면 이미지의 일부가 보이지 않을 수 있습니다.

using var converter = await HtmlConverter.CreateAsync();
var html = $"<img src='https://bitmiracle.com/images/team.svg' width='200' />";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");

SVG 파일을 PDF로 변환

SVG 파일을 PDF로 변환하려면 파일 Uri를 만들고 이를 CreatePdfAsync 메서드에 전달하세요. 또 다른 방법은 img 태그가 포함된 HTML 조각을 만들고 이를 CreatePdfFromStringAsync 메서드와 함께 사용하는 것입니다. HTML 코드에서 상대 경로를 사용하는 경우, 변환 옵션을 통해 기본 URL을 제공하세요.

여러 SVG 파일을 PDF로 변환하려면 여러 img 태그를 포함한 HTML 조각을 만들고 이를 CreatePdfFromStringAsync 메서드와 함께 사용하세요. 모든 파일이 같은 폴더에 있다면, HTML 코드에서 상대 경로를 사용하고 기본 URL을 제공하는 것을 권장합니다.

SVG를 PDF에 추가

먼저 HtmlConverter 메서드 중 하나를 사용해 SVG를 PDF로 변환합니다.

using var converter = await HtmlConverter.CreateAsync();
var uri = new Uri("https://bitmiracle.com/images/quote.svg");
using var svgPdf = await converter.CreatePdfAsync(uri);

그런 다음 생성된 PDF의 내용을 다른 문서 위에 오버레이하거나, 해당 문서를 다른 PDF와 병합할 수 있습니다.

SVG를 PDF 위에 오버레이하려면 변환된 문서의 첫 페이지에서 XObject를 만들고, 그 XObject를 다른 문서의 PDF 페이지 위에 그립니다. 예를 들면 다음과 같습니다.

using var pdf = new PdfDocument("some-other.pdf");
var xObj = pdf.CreateXObject(svgPdf.Pages[0]);

pdf.Pages[0].Canvas.DrawXObject(xObj, 0, 0);
pdf.Save("output.pdf");

SVG를 PDF에 병합하려면 사용 가능한 병합 방법 중 하나를 사용해 변환된 PDF 문서를 다른 PDF와 결합하세요.

WEBP를 PDF로 변환

WebP는 웹 형식이므로 HtmlToPdf 추가 기능과 Docotic.Pdf를 사용해 PDF로 변환할 수 있습니다. 다음 C# 코드는 높은 품질로 WebP를 PDF로 변환하는 방법을 보여줍니다.

using var converter = await HtmlConverter.CreateAsync();
var html = $"<img src='https://bitmiracle.com/pdf-library/images/edit/reorder-pages.webp'/>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");

위 코드에서는 img 태그에 width 또는 height 속성을 지정하지 않았지만, 포함하는 것이 좋습니다. 지정한 이미지 크기가 PDF 페이지보다 크면 이미지의 일부가 보이지 않을 수 있다는 점을 기억하세요.

WebP는 래스터 형식이므로 크게 확대해도 품질이 좋지 않습니다. 필요한 최대 크기와 해상도의 이미지를 사용하는 것을 권장합니다.

WebP 파일을 PDF로 변환하려면 같은 코드를 사용하세요. HTML에 상대 경로가 있으면 로드 옵션을 통해 기본 URL을 제공하세요. 로컬 이미지를 변환할 때는 파일 Uri를 기본 URL로 사용하세요.

XSLT를 사용해 XML을 PDF로 변환

XML을 PDF로 변환하려면 먼저 XSLT 변환을 사용해 XML을 HTML로 변환합니다. 그런 다음 HtmlToPdf 추가 기능과 함께 Docotic.Pdf를 사용해 결과 HTML을 PDF로 변환합니다.

다음은 C# XML을 PDF로 변환하는 코드입니다.

var transform = CreateTransform("invoice.xsl");
var html = TransformToHtml("invoice.xml", transform);

using var converter = await HtmlConverter.CreateAsync();
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("invoice.pdf");

이 코드는 다음을 수행합니다.

  • 첫 번째 줄에서 XSLT 변환 개체를 만듭니다.
  • 두 번째 줄에서 XML 파일을 HTML 문서로 변환합니다.
  • 나머지 줄에서 변환 결과(HTML 문자열)를 PDF로 변환합니다.

첫 두 항목을 조금 더 자세히 살펴보겠습니다. 세 번째 항목은 이 섹션에서 완전히 다룹니다.

XSLT 변환 만들기

변환 과정의 첫 단계는 XSLT 변환 개체를 만드는 것입니다. 다음 코드는 이러한 개체를 만드는 방법을 보여줍니다.

public static void CreateTransform(string xsltFileName)
{
    var transform = new XslCompiledTransform();
    transform.Load(xsltFileName);
    return transform;
}

이름에서 알 수 있듯이 XslCompiledTransform은 제공된 스타일시트를 컴파일하고 그로부터 IL 코드를 생성합니다. 코드가 XML을 PDF로 대량 변환해야 한다면, 같은 변환 개체를 재사용하여 성능을 향상시키세요.

XML을 HTML로 변환

두 번째 단계는 이전 단계에서 만든 XSLT 변환 개체를 사용해 XML로부터 HTML을 생성하는 것입니다.

public static string TransformToHtml(string xmlFileName, XslCompiledTransform transform)
{
    using var xmlReader = XmlReader.Create(xmlFileName);
    using var sw = new StringWriter();
    using var writer = XmlWriter.Create(sw, transform.OutputSettings);
    transform.Transform(xmlReader, null, writer);
    return sw.ToString();
}

이 코드는 XmlReaderXmlWriter를 사용합니다. 대용량 XML 파일에 적합하고 메모리 사용량을 낮게 유지하는 데 도움이 되기 때문입니다.

XML을 PDF로 변환하는 샘플 코드

샘플 저장소에는 XML 송장을 PDF로 변환하는 샘플 애플리케이션의 C# 및 VB.NET 버전이 포함되어 있습니다. 샘플 애플리케이션에는 예제 XML 송장과 대응하는 XSLT 스타일시트가 들어 있습니다.

현대적인 브라우저에서 XML을 반환하는 URL로 이동하면, 브라우저는 관련 XSLT가 있으면 이를 자동으로 적용해 읽기 쉬운 HTML을 생성하고 표시할 수 있습니다. 이는 XML과 XSLT 파일이 모두 같은 서버에 호스팅된 경우에만 작동합니다. 교차 출처 요청을 방지하기 위해, 브라우저는 로컬 파일 시스템에서 XML 파일을 직접 열 경우 스타일시트를 로드하거나 적용하지 않습니다.

PDF를 만들기 위한 절충점과 대안

HTML to PDF API는 Docotic.Pdf로 PDF를 생성하는 유일한 방법이 아니며, 항상 가장 효율적인 것도 아닙니다. 이 섹션에서는 시나리오에 맞는 올바른 옵션을 선택하는 데 도움이 되도록 대안을 정리합니다.

HTML to PDF, Canvas API, 템플릿 기반 생성, Layout API, 조합을 사용해 PDF를 만드는 방법을 보여주는 그림.

HTML to PDF가 적합한 경우

팀이 이미 HTML/CSS로 문서를 만들고 있다면 HTML to PDF 접근 방식을 선택하세요. 특히 문서가 청구서, 구매 주문서, 인증서, 영수증 등 웹 페이지와 비슷하다면 더욱 적합합니다.

HtmlToPdf 추가 기능을 사용하면 기존 HTML/CSS 템플릿을 재사용하고 고충실도 레이아웃 및 렌더링 기능의 이점을 얻을 수 있습니다. 추가 기능을 사용하면 고품질 PDF 출력으로 가는 경로가 가장 빠를 수 있습니다.

기억해야 할 제한 사항

HTML to PDF API는 Google Chrome HTML 렌더링 엔진을 사용합니다. 이 엔진은 강력하지만 오버헤드가 있습니다. 일반적인 HTML to PDF 변환은 예를 들어 PDF 페이지 캔버스에 직접 그리는 것보다 더 많은 CPU와 메모리를 사용합니다. 이 오버헤드는 대량 배치 생성 속도를 늦출 수 있습니다.

브라우저 엔진은 런타임 점유 공간도 증가시켜, 최소한의 Docker 이미지나 제약된 환경에서는 바람직하지 않을 수 있습니다. 예를 들어 메모리 사용량과 실행 시간이 매우 엄격하게 제한된 서버리스 환경에서는 API가 작동하지 않을 수 있습니다.

Docotic.Pdf에서 PDF를 만드는 다른 방법

Docotic.Pdf 라이브러리는 서로 다른 요구에 맞는 여러 문서 생성 방법을 제공합니다.

  • Canvas API를 통한 직접 PDF 생성
    티켓, 라벨, 양식처럼 구조화되고 예측 가능한 레이아웃에 이상적입니다. 최대 성능과 좌표, 타이포그래피, 콘텐츠 배치에 대한 완전한 제어를 제공합니다.

  • 템플릿 기반 PDF 생성
    승인되고 규정에 의해 제어되는 템플릿을 다룰 때 종종 가장 좋은 선택입니다. 기존 PDF에서 시작해 필드를 채우고, 자리 표시자를 바꾸고, 필요에 따라 관련 문서를 첨부합니다.

  • Layout API를 사용한 PDF 생성
    페이지, 컨테이너, 이미지, 텍스트 단락 및 기타 레이아웃 요소와 같은 빌딩 블록을 제공합니다. 유창한 API를 사용해 PDF 레이아웃을 전부 코드로 설명하면, 라이브러리가 해당 레이아웃에서 PDF를 생성합니다.

  • 다른 PDF 및 이미지로부터의 조합
    기존 PDF와 이미지를 사용해 명세서, 보고서, 문서 번들 및 기타 문서를 가볍게 조립할 수 있습니다. 이미지를 PDF 페이지로 변환하고, 여러 PDF를 결합하고, 페이지를 추가하거나, 일부를 재사용할 수 있습니다.

다른 HTML to PDF 솔루션과의 비교

.NET에서 올바른 HTML‑to‑PDF 라이브러리를 선택하는 데 도움이 되도록, HtmlToPdf 추가 기능과 함께 사용하는 Docotic.Pdf가 HTML을 PDF로 변환하는 다른 인기 솔루션과 어떻게 비교되는지 정리했습니다.

주요 비교 요약

대부분의 브라우저 기반 솔루션은 고품질 렌더링을 제공하고 최신 HTML, CSS, JavaScript를 완전히 지원합니다. 그러나 중요한 차이점이 있습니다.

솔루션 사용 시점 가장 적합한 경우
HtmlToPdf 추가 기능과 함께 사용하는 Docotic.Pdf 픽셀 단위까지 정확한 시각적 충실도로 보고서, 청구서, 영수증을 변환할 때 HTML to PDF 변환과 PDF 편집이 모두 필요하고 전문 지원이 뒷받침되는 전문가 수준의 소프트웨어
Puppeteer 브라우저 수준의 충실도로 최신 HTML/CSS/JS 렌더링이 필요하고 HTML-to-PDF 출력만 필요한 경우 무료 또는 오픈 소스 요구 사항이 있는 픽셀 단위 정확한 HTML to PDF 생성
IronPDF 팀에 Iron Suite 라이선스가 있거나 IronPDF 사용 경험이 있는 경우 여러 Iron Software 구성 요소에 의존하는 팀
wkhtmltopdf 비교적 가벼운 풋프린트가 필요하고 HTML/CSS가 단순하며 외부 또는 신뢰할 수 없는 참조가 없는 경우 이미 wkhtmltopdf를 사용 중인 시스템과의 레거시 호환성

자세한 비교

표의 정보를 확인해 전체 그림을 파악하고 직접 결론을 내리세요.

  HtmlToPdf와 함께 사용하는 Docotic.Pdf Puppeteer IronPDF wkhtmltopdf
엔진 Headless Chrome Headless Chrome / Chromium Headless Chrome 레거시 Qt WebKit
렌더링 충실도 픽셀 단위까지 정확함 픽셀 단위까지 정확함 픽셀 단위까지 정확함 특이점과 제한이 있는 픽셀 단위 정확도
HTML5 지원 완전 완전 완전 부분적이며 제한적
CSS3 지원 완전 완전 완전 매우 제한적
JavaScript 지원 완전 완전 완전 부분적이고 오래됨
.NET 코드와의 통합 비동기 .NET API PuppeteerSharp를 사용할 경우 비동기 .NET API; 그렇지 않으면 Node.js 스크립트. 비동기 .NET API 명령줄 프로세스 또는 C# 래퍼 라이브러리(예: DinkToPdf)
HTML 변환 외 PDF 기능 광범위함 없음 제한적 없음
지원 유형 잠재 고객과 고객을 위한 전문 지원 커뮤니티 지원만 제공 잠재 고객과 고객을 위한 전문 지원 커뮤니티 지원만 제공
지원 가능 여부 응답 시간 보장; 상위 등급 라이선스에는 우선 지원 자원봉사 응답; PuppeteerSharp에는 후원 기반 우선 지원 가능 응답 시간 보장; 상위 등급 라이선스에는 우선 지원 공식 지원 채널 없음
유지 관리 상태 적극적으로 유지 관리 중 적극적으로 유지 관리 중 적극적으로 유지 관리 중 더 이상 유지 관리되지 않음
라이선스 상업용, 적격 사용 사례에는 무료 라이선스 제공 Apache-2.0; PuppeteerSharp는 MIT 상업용 LGPL-3.0; DinkToPdf는 MIT
재배포 권한 모든 라이선스에서 로열티 무료 모든 라이선스에서 로열티 무료 포함되지 않음; 별도 구매 필요 모든 라이선스에서 로열티 무료
개발자 라이선스 모든 라이선스에서 개발자 수 무제한 모든 라이선스에서 개발자 수 무제한 라이선스 등급에 따라 다름; 최고 등급 라이선스에서만 무제한 모든 라이선스에서 개발자 수 무제한
온라인 라이선스 검증 온라인 검증 불필요 라이선스 검증 수행 안 함 프리미엄 라이선스를 제외하고 필요 라이선스 검증 수행 안 함

결론

HtmlToPdf 추가 기능과 함께 사용하는 Docotic.Pdf는 전체 기능을 갖춘 PDF API와 함께 신뢰할 수 있고 고품질의 HTML to PDF 변환을 제공합니다. 이 라이브러리는 HTML로부터 PDF 보고서, 청구서, 영수증 및 기타 비즈니스 문서를 생성하면서 픽셀 단위까지 정확한 시각적 충실도를 유지하는 데 적합합니다.

추가 기능은 완전히 온프레미스에서 실행되는 비동기 .NET API를 제공합니다. 데이터는 서버를 벗어나지 않으므로 보안과 개인정보 보호를 완전히 제어할 수 있습니다.

HTML to PDF 변환 외에도 Docotic.Pdf는 생성된 PDF에 암호 보호를 추가하고 디지털 서명으로 서명할 수 있으며, 여기에는 LTV가 활성화된 서명도 포함됩니다.

병합을 통해 여러 생성된 PDF를 최종 문서로 조합할 수 있습니다. HTML 변환 또는 병합 후 PDF가 너무 커지면, 라이브러리는 파일 내부의 중복 객체를 제거하고 파일 크기를 줄이는 다른 방법을 적용할 수 있습니다. 읽기 경험을 개선하기 위해 Docotic.Pdf는 Fast Web View용으로도 PDF를 최적화할 수 있습니다(PDF를 선형화).

다음 단계:

자주 묻는 질문

.NET용 HTML to PDF 라이브러리를 선택하는 방법?

라이브러리를 선택하기 전에 요구 사항을 정의하고 수집하세요. 후보 라이브러리가 변환된 PDF를 병합할 수 없고 이 기능이 솔루션에 필요하다는 것을 미리 알면 평가 시간을 절약할 수 있습니다. 인기 있는 .NET용 HTML to PDF 라이브러리를 나란히 비교한 모습은 비교 섹션에서 확인하세요.

HTML이 PDF에서 올바르게 렌더링되지 않는 이유는 무엇인가요?

HTML은 Google Chrome에서는 올바르게 보이는데 생성된 PDF에서는 그렇지 않다면 변환 옵션을 확인하세요. 콘텐츠를 담기에 충분한 너비가 있는지 확인하세요. HTML에는 변환 전 JavaScript 실행이 필요할 수도 있습니다.

직접 PDF API 대신 HTML 템플릿을 사용하는 이유는 무엇인가요?

HTML 템플릿을 사용하면 문서 레이아웃에서 솔루션이 매우 유연해집니다. HTML과 CSS의 강력한 스타일링 기능을 사용해 PDF의 모양을 쉽게 바꿀 수 있습니다. 또한 PDF API로 온라인 문서의 디자인을 복제할 필요도 없습니다.

ASPX를 PDF로 변환하는 방법은 무엇인가요?

ASPX를 PDF로 변환하려면 ASP.NET 엔진이 ASPX 페이지의 HTML을 생성하게 한 다음, Docotic.Pdf 라이브러리를 사용해 해당 HTML을 PDF로 변환하세요. 자세한 내용은 해당 섹션에서 확인할 수 있습니다.

SVG를 PDF 위에 오버레이하는 방법은 무엇인가요?

SVG를 PDF 위에 오버레이하려면 SVG에서 PDF를 생성한 다음 생성된 문서의 첫 페이지에서 XObject를 만드세요. XObject는 투명 배경을 가지므로 다른 문서의 PDF 페이지 위에 배치할 수 있습니다.

생성된 PDF에 워터마크를 추가하는 방법은 무엇인가요?

HTML로 생성한 PDF 문서에 워터마크를 추가하려면 XObject를 만들고, 워터마크 콘텐츠로 채운 뒤 문서 페이지 위에 그리세요. 워터마크에는 벡터 그래픽, 이미지, 텍스트를 사용할 수 있습니다.

Docotic.Pdf가 wkhtmltopdf보다 더 나은가요?

Docotic.Pdf는 최신 HTML, CSS, JavaScript를 완전히 지원하는 반면, wkhtmltopdf는 최신 웹 문서에서 일관성 없는 렌더링을 생성하는 경우가 많습니다. 또한 Docotic.Pdf는 HTML to PDF 변환 외의 API도 제공합니다. 예를 들어 이 라이브러리는 LTV가 활성화된 디지털 서명으로 PDF에 서명할 수 있지만, wkhtmltopdf는 HTML만 변환할 수 있습니다.