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

.NET용 HTML을 PDF로 변환

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

이 가이드에서는 추가 기능에서 제공하는 HTML-PDF 변환 기능을 설명하고, 각 주제에 대한 자세한 정보를 제공하는 페이지 링크를 포함합니다.

HTML을 PDF로 변환하는 라이브러리 내부의 처리 과정을 보여주는 그림입니다. HTML 문서가 라이브러리에 입력되면, 라이브러리는 이를 기반으로 PDF 파일을 생성합니다.

C#을 이용한 HTML을 PDF로 변환하는 기초

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

NuGet에서 추가 기능을 설치하세요

Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf

이 방법은 종속성 및 업데이트를 자동으로 처리하므로 권장되는 방법입니다. Docotic.Pdf 바이너리가 포함된 zip 파일에서 애드온을 수동으로 설치할 수도 있지만, 이 방법은 더 복잡하고 오류 발생 가능성이 높습니다.

라이선스 키를 받으세요

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

모든 Docotic.Pdf 라이선스에는 HTML을 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을 PDF로 변환하는 데 적합한 이유는 무엇일까요?

Docotic.Pdf는 변환 과정에서 스타일과 레이아웃을 그대로 유지할 수 있어 HTML 보고서, 송장 및 기타 문서를 PDF로 변환하는 데 최적의 선택입니다. 이 라이브러리는 HTML 및 SVG와 같은 다른 웹 형식에서 픽셀 단위까지 완벽한 PDF 문서를 생성합니다. 기존 HTML 콘텐츠를 재사용하는 것도 간편합니다.

Docotic.Pdf는 Google Chrome 렌더링 엔진을 사용하므로 최고의 웹 브라우저 중 하나인 Chrome과 동일한 수준의 웹 표준을 준수합니다.

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

API 아키텍처 개요

HTML을 PDF로 변환하는 API는 Docotic.Pdf와 무료 HtmlToPdf 추가 기능을 함께 사용할 때만 사용할 수 있습니다.

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

.NET 버전 및 플랫폼 지원

이 라이브러리와 애드온은 .NET Standard 2.0을 대상으로 합니다. 즉, .NET 5부터 .NET 10까지 호환됩니다. 또한 .NET Core 2.0 이상 및 .NET Framework 4.6.1 이상도 지원합니다.

HTML을 PDF로 변환하는 기능은 Windows Forms, WPF, ASP.NET 및 콘솔 애플리케이션에서 사용할 수 있습니다. 애드온은 클라우드 환경과 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를 코드로 반환합니다.

클라우드 플랫폼 및 도커 이미지

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 이미지에서 애드온을 실행하는 방법에 대한 자세한 내용은 관련 문서를 참조하십시오.

클라우드 앱에서 지원되는 라이선스 유형은 무엇인가요?

대부분의 경우, 하드웨어 ID가 고정된 라이선스(Ultimate 또는 Ultimate+)가 필요합니다. 하드웨어 ID가 변경되지 않는다면 서버 라이선스도 사용할 수 있습니다.

서버 라이선스는 서버의 하드웨어 ID에 연결됩니다. 실행 또는 재부팅 사이에 하드웨어가 변경되면 서버 라이선스는 더 이상 유효하지 않습니다. 또한, 각 프로덕션 서버에 고유한 라이선스가 필요하기 때문에 서버 수가 동적으로 변경될 수 있는 환경에서는 서버 라이선스를 사용할 수 없습니다.

서버의 하드웨어 ID가 일관되게 유지되는지 확인하려면 LicenseManager.Uid 속성 값을 확인하십시오. 또는 UID 생성기 애플리케이션을 사용하여 동일한 ID를 가져올 수도 있습니다.

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로 변환

Docotic.Pdf와 무료 HtmlToPdf 추가 기능을 함께 사용하여 ASPX 파일을 PDF로 변환하세요. 변환 과정은 다음과 같습니다.

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

ASP.NET 웹 폼 애플리케이션에서 ASPX 페이지를 PDF로 생성하는 방법을 알아보려면 샘플 코드를 참조하세요. 샘플 애플리케이션은 HTML 또는 PDF 형식으로 송장을 생성하여 위의 과정을 보여줍니다. 동일한 방법을 사용하여 보고서, 명세서 및 기타 문서의 고품질 PDF 버전을 생성할 수 있습니다.

SVG 파일을 PDF로 변환

Docotic.Pdf 라이브러리용 HtmlToPdf 추가 기능을 사용하면 SVG를 벡터 PDF로 변환할 수 있습니다. HtmlConverter 클래스를 SVG-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을 제공하는 것이 좋습니다.

PDF에 SVG 추가하기

먼저 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를 생성하고, 다른 문서의 PDF 페이지 위에 해당 XObject를 그립니다. 다음과 같습니다.

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는 웹 형식이기 때문에 Docotic.Pdf의 HtmlToPdf 추가 기능을 사용하여 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로 변환합니다. 그런 다음 Docotic.Pdf의 HtmlToPdf 추가 기능을 사용하여 결과 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 XslCompiledTransform 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();
}

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

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

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

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

PDF 생성 시 고려해야 할 사항 및 대안

Docotic.Pdf를 사용하여 PDF를 생성하는 방법은 HTML to PDF API 외에도 여러 가지가 있으며, 항상 가장 효율적인 방법도 아닙니다. 이 섹션에서는 사용 환경에 맞는 최적의 방법을 선택할 수 있도록 다양한 대안을 소개합니다.

PDF를 생성하는 다양한 방법을 보여주는 예시: HTML을 PDF로 변환하는 방법, Canvas API, 템플릿 기반 생성, 레이아웃 API 및 구성 기능을 사용합니다.

HTML을 PDF로 변환하는 것이 적절한 경우는 언제일까요?

팀에서 이미 HTML/CSS를 사용하여 문서를 작성하는 경우, 특히 청구서, 구매 주문서, 증명서, 영수증 등 웹 페이지와 유사한 문서를 작성하는 경우 HTML을 PDF로 변환하는 방식을 선택하세요.

HtmlToPdf 추가 기능을 사용하면 기존 HTML/CSS 템플릿을 재사용하고 고품질 레이아웃 및 렌더링 기능을 활용할 수 있습니다. 이 추가 기능을 사용하면 고품질 PDF 출력을 가장 빠르게 구현할 수 있습니다.

유의해야 할 제한 사항

HTML을 PDF로 변환하는 API는 Google Chrome의 HTML 렌더링 엔진을 사용합니다. 이 엔진은 강력하지만 오버헤드가 발생합니다. 예를 들어, 일반적인 HTML-PDF 변환은 PDF 페이지 캔버스에 직접 그리는 것보다 더 많은 CPU 및 메모리를 소모합니다. 이러한 오버헤드로 인해 대량의 파일을 일괄 처리하는 속도가 느려질 수 있습니다.

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

Docotic.Pdf에서 PDF를 생성하는 다른 방법

Docotic.Pdf 라이브러리는 다양한 요구 사항에 맞춰 문서를 생성하는 여러 가지 방법을 제공합니다.

  • Canvas API를 통한 PDF 직접 생성
    티켓, 라벨, 양식과 같이 구조화되고 예측 가능한 레이아웃에 이상적입니다. 최고의 성능과 좌표, 서체, 콘텐츠 배치에 대한 완벽한 제어 기능을 제공합니다.

  • 템플릿 기반 PDF 생성
    승인되고 규정 준수가 보장된 템플릿을 사용할 때 가장 좋은 선택인 경우가 많습니다. 기존 PDF 파일에서 시작하여 필드를 채우고, 자리 표시자를 바꾸고, 필요에 따라 관련 문서를 첨부하면 됩니다.

  • 레이아웃 API를 이용한 PDF 생성
    페이지, 컨테이너, 이미지, 텍스트 단락 및 기타 레이아웃 요소와 같은 구성 요소를 제공합니다. 직관적인 API를 사용하여 코드로 PDF 레이아웃을 완벽하게 정의할 수 있으며, 라이브러리가 해당 레이아웃을 기반으로 PDF를 생성합니다.

  • 다른 PDF 및 이미지와의 합성
    기존 PDF 및 이미지 파일에서 명세서, 보고서, 문서 묶음 및 기타 문서를 간편하게 조합할 수 있는 방법을 제공합니다. 이미지를 PDF 페이지로 변환하고, 여러 PDF 파일을 결합하고, 페이지를 추가하거나, 일부를 재사용할 수 있습니다.

다른 HTML-PDF 변환 솔루션과의 비교

.NET용 적합한 HTML-PDF 변환 라이브러리를 선택하는 데 도움이 되도록, Docotic.Pdf와 HtmlToPdf 추가 기능이 HTML을 PDF로 변환하는 다른 인기 솔루션과 어떻게 다른지 비교 정보를 제공합니다.

주요 비교 요점

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

해결책 사용 시점 ~에 가장 적합함
HtmlToPdf 추가 기능을 사용하여 Docotic.Pdf 파일을 생성합니다 보고서, 송장, 영수증을 픽셀 단위까지 완벽한 시각적 품질로 변환합니다 전문적인 지원을 제공하는 HTML-PDF 변환 및 PDF 편집 기능을 모두 갖춘 전문가용 소프트웨어
Puppeteer 브라우저 수준의 정확도를 갖춘 최신 HTML/CSS/JS 렌더링이 필요하고 HTML을 PDF로만 변환하는 것이 필요한 경우 무료 또는 오픈소스 소프트웨어를 사용하여 픽셀 단위까지 정확한 HTML을 PDF로 변환합니다
IronPDF 팀에 Iron Suite 라이선스가 있거나 IronPDF 사용 경험이 있는 경우 여러 Iron Software 구성 요소를 사용하는 팀
wkhtmltopdf 상대적으로 용량이 작아야 하고 HTML/CSS 코드가 간단하며 외부 또는 신뢰할 수 없는 참조가 없는 경우에 적합합니다 wkhtmltopdf를 이미 사용하는 시스템과의 레거시 호환성

상세 비교

표에 있는 정보를 확인하여 전체적인 상황을 파악하고 스스로 결론을 내리세요.

  Docotic.Pdf를 HtmlToPdf로 변환 Puppeteer IronPDF wkhtmltopdf
엔진 Headless Chrome Headless Chrome / Chromium Headless Chrome 레거시 Qt WebKit
렌더링 충실도 픽셀 단위로 완벽함 픽셀 단위로 완벽함 픽셀 단위로 완벽함 픽셀 단위까지 완벽하지만, 특이한 점과 한계점도 존재합니다
HTML5 지원 가득한 가득한 가득한 부분적이고 제한적인
CSS3 지원 가득한 가득한 가득한 극히 제한적임
자바스크립트 지원 가득한 가득한 가득한 부분적이고 시대에 뒤떨어진
.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 라이선스입니다
재배포 권한 모든 라이선스 포함, 로열티 프리 모든 라이선스 포함, 로열티 프리 포함되어 있지 않으며, 별도 구매가 필요합니다 모든 라이선스 포함, 로열티 프리
개발자 라이선스 모든 라이선스를 보유한 무제한 개발자 모든 라이선스를 보유한 무제한 개발자 라이선스 등급에 따라 다릅니다. 최고 등급 라이선스에서만 무제한 사용이 가능합니다 모든 라이선스를 보유한 무제한 개발자
온라인 면허증 확인 온라인 인증이 필요하지 않습니다 라이선스 확인은 수행되지 않았습니다 프리미엄 라이선스를 제외한 모든 라이선스에 필요합니다 라이선스 확인은 수행되지 않았습니다

결론

Docotic.Pdf는 HtmlToPdf 애드온과 함께 안정적이고 고품질의 HTML-PDF 변환 기능을 제공하며, 모든 기능을 갖춘 PDF API도 지원합니다. 이 라이브러리는 HTML에서 PDF 보고서, 송장, 영수증 및 기타 비즈니스 문서를 생성하는 데 적합하며, 픽셀 단위까지 완벽한 시각적 품질을 유지합니다.

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

Docotic.Pdf는 HTML을 PDF로 변환하는 것 외에도 생성된 PDF에 암호 보호 기능을 추가할 수 있습니다. 또한 LTV(대체 문자 서명)를 지원하는 서명을 포함하여 디지털 서명으로 PDF에 서명할 수 있습니다.

여러 개의 생성된 PDF를 병합하여 최종 문서를 만들 수 있습니다. HTML 변환 또는 병합 후 PDF 파일 크기가 너무 커지면 라이브러리는 파일 내의 중복 객체를 제거하고 다른 방법을 적용하여 파일 크기를 줄일 수 있습니다. 또한, 가독성을 향상시키기 위해 Docotic.Pdf는 Fast Web View에 맞게 PDF를 최적화(PDF 선형화)할 수 있습니다.

다음 단계:

자주 묻는 질문

.NET용 HTML-PDF 변환 라이브러리를 선택하는 방법은 무엇인가요?

라이브러리를 선택하기 전에 요구 사항을 정의하고 수집하세요. 후보 라이브러리가 변환된 PDF를 병합할 수 없다는 사실을 미리 알고 있다면 평가 시간을 절약할 수 있습니다. 특히 해당 기능이 솔루션에 필수적인 경우라면 더욱 그렇습니다. 인기 있는 .NET용 HTML-PDF 변환 라이브러리들을 비교 분석한 내용은 비교 섹션을 참조하세요.

HTML 코드가 PDF에서 제대로 표시되지 않는 이유는 무엇인가요?

Google Chrome에서는 HTML이 올바르게 표시되지만 생성된 PDF에서는 제대로 표시되지 않는 경우, 변환 옵션을 확인하세요. 콘텐츠를 표시할 수 있도록 충분한 너비가 확보되었는지 확인하십시오. 또한 변환 전에 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를 만들고 워터마크 내용을 채운 다음 문서 페이지 위에 XObject를 그립니다. 워터마크에는 벡터 그래픽, 이미지 및 텍스트를 사용할 수 있습니다.

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

Docotic.Pdf는 최신 HTML, CSS 및 JavaScript를 완벽하게 지원하는 반면, wkhtmltopdf는 최신 웹 문서에서 일관성 없는 렌더링을 보이는 경우가 많습니다. 또한 Docotic.Pdf는 HTML을 PDF로 변환하는 것 외에도 다양한 API를 제공합니다. 예를 들어, 이 라이브러리는 LTV를 지원하는 디지털 서명을 사용하여 PDF에 서명할 수 있지만, wkhtmltopdf는 HTML 변환만 지원합니다.