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

HTML을 PDF로 변환하는 C# 오픈 소스 (.NET 라이브러리 비교)

HTML을 PDF로 변환하는 것은 보고서 생성, 송장 발행, 웹 페이지를 PDF로 저장하는 등 많은 소프트웨어 애플리케이션에서 일반적인 요구 사항입니다. 이 기사에서는 C#의 HTML을 PDF로 변환하기 위한 세 가지 인기 있는 오픈 소스 라이브러리를 탐구하고, 이들의 강점과 한계를 검토하며, 많은 경우 IronPDF가 더 나은 대안인 이유를 논의합니다.

HTML에서 PDF로 변환기 C# 오픈 소스

1. PuppeteerSharp

HTML to PDF 변환기 C# 오픈 소스 (.NET 라이브러리 비교): 그림 1

PuppeteerSharp는 머리 없는 Chromium 브라우저인 Puppeteer에 대한 .NET 래퍼입니다. 이는 Chromium 렌더링 엔진을 활용하여 HTML 문서를 PDF로 변환할 수 있도록 합니다.

PuppeteerSharp는 렌더링 프로세스를 정확하게 제어할 수 있게 해줍니다. 다음은 예시입니다.

using PuppeteerSharp;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Download Chromium to ensure compatibility with PuppeteerSharp
        await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);

        // Launch a headless instance of Chromium browser
        using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))
        {
            // Open a new browser page
            var page = await browser.NewPageAsync();

            // Set the HTML content for the page
            await page.SetContentAsync("<html><body><h1>Hello, PuppeteerSharp!</h1></body></html>");

            // Generate a PDF from the rendered HTML content
            await page.PdfAsync("output.pdf");
            Console.WriteLine("PDF Generated Successfully!");
        }
    }
}
using PuppeteerSharp;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Download Chromium to ensure compatibility with PuppeteerSharp
        await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);

        // Launch a headless instance of Chromium browser
        using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))
        {
            // Open a new browser page
            var page = await browser.NewPageAsync();

            // Set the HTML content for the page
            await page.SetContentAsync("<html><body><h1>Hello, PuppeteerSharp!</h1></body></html>");

            // Generate a PDF from the rendered HTML content
            await page.PdfAsync("output.pdf");
            Console.WriteLine("PDF Generated Successfully!");
        }
    }
}
Imports PuppeteerSharp
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Download Chromium to ensure compatibility with PuppeteerSharp
		Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultChromiumRevision)

		' Launch a headless instance of Chromium browser
		Using browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
			' Open a new browser page
			Dim page = Await browser.NewPageAsync()

			' Set the HTML content for the page
			Await page.SetContentAsync("<html><body><h1>Hello, PuppeteerSharp!</h1></body></html>")

			' Generate a PDF from the rendered HTML content
			Await page.PdfAsync("output.pdf")
			Console.WriteLine("PDF Generated Successfully!")
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

코드 설명

  1. Chromium 다운로드: PuppeteerSharp는 호환성을 보장하기 위해 필요한 Chromium 버전을 자동으로 다운로드합니다.

  2. 브라우저 시작: Puppeteer.LaunchAsync()를 사용하여 Chromium의 무헤드 인스턴스를 시작합니다.

  3. HTML 콘텐츠 설정: page.SetContentAsync()를 사용하여 원하는 HTML을 브라우저 페이지에 로드합니다.

  4. PDF 생성: 렌더링된 콘텐츠의 PDF를 생성하려면 page.PdfAsync() 메소드를 사용하십시오.

결과는 HTML 구조와 디자인을 정확하게 복제하는 높은 품질의 PDF (output.pdf) 입니다.

장점

  • 고품질 렌더링: 고급 CSS 및 JavaScript를 포함한 현대 웹 기술을 지원합니다.
  • 자동화 기능: PDF 외에도 PuppeteerSharp는 웹 브라우징, 테스트, 데이터 추출을 자동화할 수 있습니다.
  • 적극적인 개발: PuppeteerSharp는 적극적으로 유지 관리되며 정기적으로 업데이트됩니다.

단점

  • 큰 파일 크기: 배포 크기를 증가시키는 Chromium 브라우저의 다운로드 및 번들이 필요합니다.
  • 자원 집약적: 브라우저 인스턴스를 실행하는 데 시스템 자원이 필요할 수 있으며, 특히 대규모 애플리케이션에 그럴 수 있습니다.
  • 제한된 PDF 특정 기능: PuppeteerSharp는 PDF를 향상시키기보다는 렌더링에 중점을 두며(예: 머리글 또는 바닥글 추가 등)

2. PdfSharp

HTML to PDF 변환기 C# 오픈 소스 (.NET 라이브러리 비교): 그림 2

PdfSharp는 C#에서 PDF 파일을 생성하고 조작하기 위한 강력한 오픈 소스 라이브러리입니다. 직접적인 HTML 렌더링을 지원하지는 않지만 개발자가 PDF 문서를 프로그램적으로 생성하고 편집할 수 있는 도구를 제공합니다.

PdfSharp의 주요 기능

  1. PDF 생성: PdfSharp는 개발자가 페이지 크기를 정의하고, 텍스트, 도형, 이미지 등을 추가하여 새로운 PDF 파일을 생성할 수 있도록 합니다.

  2. 기존 PDF의 조작: 기존 PDF 문서를 수정하여 병합, 분할 또는 콘텐츠를 추출할 수 있습니다.

  3. 그리기 기능: PdfSharp는 XGraphics 클래스를 사용하여 PDF 파일에 사용자 지정 디자인을 추가하는 강력한 그래픽 기능을 제공합니다.

  4. 경량화: 이 라이브러리는 경량화되어 있어 간결함과 속도가 우선시되는 프로젝트에 이상적입니다.
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using HtmlAgilityPack;

class Program
{
    static void Main(string[] args)
    {
        // Example HTML content
        string htmlContent = "<html><body><h1>Hello, PdfSharp!</h1><p>This is an example of HTML to PDF.</p></body></html>";

        // Parse HTML using HtmlAgilityPack (You need to add HtmlAgilityPack via NuGet)
        var htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(htmlContent);

        // Create a new PDF document
        PdfDocument pdfDocument = new PdfDocument
        {
            Info = { Title = "HTML to PDF Example" }
        };

        // Add a new page to the document
        PdfPage page = pdfDocument.AddPage();

        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont titleFont = new XFont("Arial", 20, XFontStyle.Bold);
        XFont textFont = new XFont("Arial", 12, XFontStyle.Regular);

        // Draw the parsed HTML content
        int yPosition = 50; // Starting Y position
        foreach (var node in htmlDoc.DocumentNode.SelectNodes("//h1 | //p"))
        {
            if (node.Name == "h1")
            {
                gfx.DrawString(node.InnerText, titleFont, XBrushes.Black, new XRect(50, yPosition, page.Width - 100, page.Height - 100), XStringFormats.TopLeft);
                yPosition += 30; // Adjust spacing
            }
            else if (node.Name == "p")
            {
                gfx.DrawString(node.InnerText, textFont, XBrushes.Black, new XRect(50, yPosition, page.Width - 100, page.Height - 100), XStringFormats.TopLeft);
                yPosition += 20; // Adjust spacing
            }
        }

        // Save the PDF document
        string outputFilePath = "HtmlToPdf.pdf";
        pdfDocument.Save(outputFilePath);
        System.Console.WriteLine($"PDF file created: {outputFilePath}");
    }
}
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using HtmlAgilityPack;

class Program
{
    static void Main(string[] args)
    {
        // Example HTML content
        string htmlContent = "<html><body><h1>Hello, PdfSharp!</h1><p>This is an example of HTML to PDF.</p></body></html>";

        // Parse HTML using HtmlAgilityPack (You need to add HtmlAgilityPack via NuGet)
        var htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(htmlContent);

        // Create a new PDF document
        PdfDocument pdfDocument = new PdfDocument
        {
            Info = { Title = "HTML to PDF Example" }
        };

        // Add a new page to the document
        PdfPage page = pdfDocument.AddPage();

        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont titleFont = new XFont("Arial", 20, XFontStyle.Bold);
        XFont textFont = new XFont("Arial", 12, XFontStyle.Regular);

        // Draw the parsed HTML content
        int yPosition = 50; // Starting Y position
        foreach (var node in htmlDoc.DocumentNode.SelectNodes("//h1 | //p"))
        {
            if (node.Name == "h1")
            {
                gfx.DrawString(node.InnerText, titleFont, XBrushes.Black, new XRect(50, yPosition, page.Width - 100, page.Height - 100), XStringFormats.TopLeft);
                yPosition += 30; // Adjust spacing
            }
            else if (node.Name == "p")
            {
                gfx.DrawString(node.InnerText, textFont, XBrushes.Black, new XRect(50, yPosition, page.Width - 100, page.Height - 100), XStringFormats.TopLeft);
                yPosition += 20; // Adjust spacing
            }
        }

        // Save the PDF document
        string outputFilePath = "HtmlToPdf.pdf";
        pdfDocument.Save(outputFilePath);
        System.Console.WriteLine($"PDF file created: {outputFilePath}");
    }
}
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports HtmlAgilityPack

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Example HTML content
		Dim htmlContent As String = "<html><body><h1>Hello, PdfSharp!</h1><p>This is an example of HTML to PDF.</p></body></html>"

		' Parse HTML using HtmlAgilityPack (You need to add HtmlAgilityPack via NuGet)
		Dim htmlDoc = New HtmlDocument()
		htmlDoc.LoadHtml(htmlContent)

		' Create a new PDF document
		Dim pdfDocument As New PdfDocument With {
			.Info = { Title = "HTML to PDF Example" }
		}

		' Add a new page to the document
		Dim page As PdfPage = pdfDocument.AddPage()

		Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
		Dim titleFont As New XFont("Arial", 20, XFontStyle.Bold)
		Dim textFont As New XFont("Arial", 12, XFontStyle.Regular)

		' Draw the parsed HTML content
		Dim yPosition As Integer = 50 ' Starting Y position
		For Each node In htmlDoc.DocumentNode.SelectNodes("//h1 | //p")
			If node.Name = "h1" Then
				gfx.DrawString(node.InnerText, titleFont, XBrushes.Black, New XRect(50, yPosition, page.Width - 100, page.Height - 100), XStringFormats.TopLeft)
				yPosition += 30 ' Adjust spacing
			ElseIf node.Name = "p" Then
				gfx.DrawString(node.InnerText, textFont, XBrushes.Black, New XRect(50, yPosition, page.Width - 100, page.Height - 100), XStringFormats.TopLeft)
				yPosition += 20 ' Adjust spacing
			End If
		Next node

		' Save the PDF document
		Dim outputFilePath As String = "HtmlToPdf.pdf"
		pdfDocument.Save(outputFilePath)
		System.Console.WriteLine($"PDF file created: {outputFilePath}")
	End Sub
End Class
$vbLabelText   $csharpLabel

코드 설명

  1. HTML 파싱: 예제에서는 <h1><p> 태그에서 텍스트 콘텐츠를 추출하기 위해 HtmlAgilityPack (HTML을 파싱하고 조작하는 오픈 소스 라이브러리)을 사용합니다.

  2. 콘텐츠 그리기: PdfSharp의 XGraphics 클래스를 사용하여 구문 분석된 HTML 콘텐츠를 PDF 페이지에 텍스트로 렌더링합니다.

  3. 제약 사항: 이 접근 방식은 간단한 HTML 구조에 대해 작동하지만 복잡한 레이아웃, 스타일, 또는 JavaScript를 처리하지 않습니다.

PdfSharp의 장단점

장점

  • 경량화 및 쉬운 사용: PdfSharp는 직관적이고 간단하여 PDF 생성을 시작하는 개발자에게 이상적입니다.
  • 오픈 소스 및 무료: 라이선스 비용이 없으며 소스 코드를 사용자 정의할 수 있습니다.
  • 사용자 정의 그리기: 사용자 정의 디자인으로 새로 설명서 PDF를 생성하는 데 우수한 기능을 제공합니다.

단점

  • HTML에서 PDF로의 변환 없음: PdfSharp는 HTML을 PDF로 렌더링하는 기능을 기본적으로 제공하지 않으며 HTML을 구문 분석하기 위한 추가 라이브러리가 필요합니다.
  • 현대 기능에 대한 제한된 지원: 인터랙티브 PDF, 디지털 서명 또는 주석과 같은 고급 기능을 제공하지 않습니다.
  • 퍼포먼스 제약: 대규모 또는 Enterprise 애플리케이션을 위한 전문 라이브러리만큼 최적화되지 않을 수 있습니다.

3. Pdfium.NET SDK

HTML to PDF 변환기 C# 오픈 소스 (.NET 라이브러리 비교): 그림 3

Pdfium.NET는 .NET 애플리케이션에서 PDF 파일을 보기, 편집, 조작하는 데 사용할 수 있도록 설계된 오픈 소스 PDFium 프로젝트를 기반으로 한 포괄적인 라이브러리입니다. 이는 개발자가 PDF에서 콘텐츠를 생성, 편집 및 추출하는 강력한 도구를 제공하여 광범위한 용도에 적합하도록 합니다. 기본적으로 무료 HTML to PDF 변환기 라이브러리입니다.

Pdfium.NET SDK의 주요 기능

  1. PDF 생성 및 편집:

    • 처음부터 또는 스캔된 이미지로부터 PDF를 생성합니다.
    • 텍스트, 이미지 또는 주석을 추가하여 기존 PDF를 편집합니다.
  2. 텍스트 및 이미지 추출:

    • 추가 처리를 위해 PDF 파일 형식 문서에서 텍스트와 이미지를 추출합니다.
    • PDF 문서 내에서 특정 텍스트를 검색합니다.
  3. PDF 뷰어 컨트롤:

    • WinForms 또는 WPF 애플리케이션에 독립적인 PDF 뷰어를 내장합니다.
    • 확대, 스크롤, 책갈피, 텍스트 검색을 지원합니다.
  4. 호환성:

    • .NET Framework, .NET Core, .NET Standard, .NET 6+와 호환됩니다.
    • Windows 및 macOS 플랫폼과 호환됩니다.
  5. 고급 기능:
    • PDF 파일 병합 및 분할.
    • 디스플레이 또는 인쇄를 위해 이미지를 PDF로 렌더링.
using Pdfium.Net.SDK;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Initialize Pdfium.NET SDK functionalities
        PdfCommon.Initialize();

        // Create a new PDF document
        PdfDocument pdfDocument = PdfDocument.CreateNew();

        // Add a page to the document (A4 size in points: 8.27 x 11.69 inches)
        var page = pdfDocument.Pages.InsertPageAt(pdfDocument.Pages.Count, 595, 842);

        // Sample HTML content to be parsed and rendered manually
        var htmlContent = "<h1>Hello, Pdfium.NET SDK!</h1><p>This is an example of HTML to PDF.</p>";

        // Example: Manually render text since Pdfium.NET doesn't render HTML directly
        var font = PdfFont.CreateFont(pdfDocument, "Arial");
        page.AddText(72, 750, font, 20, "Hello, Pdfium.NET SDK!");
        page.AddText(72, 700, font, 14, "This is an example of HTML to PDF.");

        // Save the document to a file
        string outputFilePath = "HtmlToPdfExample.pdf";
        pdfDocument.Save(outputFilePath, SaveFlags.Default);
        Console.WriteLine($"PDF created successfully: {outputFilePath}");
    }
}
using Pdfium.Net.SDK;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Initialize Pdfium.NET SDK functionalities
        PdfCommon.Initialize();

        // Create a new PDF document
        PdfDocument pdfDocument = PdfDocument.CreateNew();

        // Add a page to the document (A4 size in points: 8.27 x 11.69 inches)
        var page = pdfDocument.Pages.InsertPageAt(pdfDocument.Pages.Count, 595, 842);

        // Sample HTML content to be parsed and rendered manually
        var htmlContent = "<h1>Hello, Pdfium.NET SDK!</h1><p>This is an example of HTML to PDF.</p>";

        // Example: Manually render text since Pdfium.NET doesn't render HTML directly
        var font = PdfFont.CreateFont(pdfDocument, "Arial");
        page.AddText(72, 750, font, 20, "Hello, Pdfium.NET SDK!");
        page.AddText(72, 700, font, 14, "This is an example of HTML to PDF.");

        // Save the document to a file
        string outputFilePath = "HtmlToPdfExample.pdf";
        pdfDocument.Save(outputFilePath, SaveFlags.Default);
        Console.WriteLine($"PDF created successfully: {outputFilePath}");
    }
}
Imports Pdfium.Net.SDK
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize Pdfium.NET SDK functionalities
		PdfCommon.Initialize()

		' Create a new PDF document
		Dim pdfDocument As PdfDocument = PdfDocument.CreateNew()

		' Add a page to the document (A4 size in points: 8.27 x 11.69 inches)
		Dim page = pdfDocument.Pages.InsertPageAt(pdfDocument.Pages.Count, 595, 842)

		' Sample HTML content to be parsed and rendered manually
		Dim htmlContent = "<h1>Hello, Pdfium.NET SDK!</h1><p>This is an example of HTML to PDF.</p>"

		' Example: Manually render text since Pdfium.NET doesn't render HTML directly
		Dim font = PdfFont.CreateFont(pdfDocument, "Arial")
		page.AddText(72, 750, font, 20, "Hello, Pdfium.NET SDK!")
		page.AddText(72, 700, font, 14, "This is an example of HTML to PDF.")

		' Save the document to a file
		Dim outputFilePath As String = "HtmlToPdfExample.pdf"
		pdfDocument.Save(outputFilePath, SaveFlags.Default)
		Console.WriteLine($"PDF created successfully: {outputFilePath}")
	End Sub
End Class
$vbLabelText   $csharpLabel

코드 설명

  1. SDK 초기화: PdfCommon.Initialize() 메소드가 Pdfium.NET 기능을 초기화합니다.

  2. PDF 생성: PdfDocument.CreateNew()를 사용하여 새로운 PDF 문서를 만듭니다.

  3. 페이지 추가: PDF에 지정된 크기로 페이지가 삽입됩니다 (예: A4 크기).

  4. HTML 콘텐츠 렌더링: Pdfium.NET SDK는 HTML 렌더링을 기본적으로 지원하지 않으므로 HTML 요소를 수동으로 파싱하고 텍스트, 도형 또는 이미지로 렌더링해야 합니다.

  5. PDF 저장: 문서는 Save() 메소드를 사용하여 파일 경로에 저장됩니다.

장점

  • PDF 생성 및 편집에 대한 완전한 제어를 허용합니다.
  • 텍스트, 이미지 및 도형을 그리기 및 추가하는 데 유연합니다.
  • 데스크톱 응용 프로그램에서 PDF를 보는 것과 조작하는 데 강력한 기능을 제공합니다.

단점

  • HTML을 PDF로 직접 변환하지 않습니다.
  • HTML의 수동 파싱 및 렌더링은 복잡하고 시간이 많이 소모될 수 있습니다.
  • HTML 변환보다는 PDF 편집 및 조작에 초점을 맞춘 응용 프로그램에 가장 적합합니다.

IronPDF 소개합니다

HTML to PDF 변환기 C# 오픈 소스 (.NET 라이브러리 비교): 그림 4

IronPDF는 .NET 개발자가 HTML 콘텐츠를 고품질 PDF로 손쉽게 변환할 수 있도록 설계된 전문 라이브러리입니다. 신뢰성, 고급 기능 및 사용 용이성으로 알려진 IronPDF는 개발 프로세스를 간소화하면서 정확한 렌더링 및 강력한 기능을 제공합니다. IronPDF가 눈에 띄는 솔루션인 이유는 다음과 같습니다:

주요 특징

  1. 직접 HTML에서 PDF로 변환: IronPDF를 사용하여 HTML 콘텐츠를 포함한 PDF 문서를 직접 생성할 수 있으며, CSS 및 JavaScript를 포함하여 완전히 서식이 있는 PDF로 변환합니다. 몇 줄의 코드만으로 개발자는 웹 페이지, 원시 HTML 문자열 또는 로컬 HTML 파일에서 PDF를 생성할 수 있습니다.

  2. 최신 렌더링 기능: 최신 웹 표준을 지원하여 IronPDF는 복잡한 레이아웃, 스타일 및 대화형 요소의 정확한 렌더링을 보장하여 HTML 페이지를 PDF로 변환합니다.

  3. 고급 PDF 기능: IronPDF는 헤더, 푸터, 워터마크, 주석 및 북마크 추가와 같은 광범위한 사용자 정의 옵션을 제공합니다. 기존 PDF의 병합, 분할 및 편집도 지원합니다.

  4. 성능 및 확장성: 소규모 응용 프로그램과 기업 환경 모두에 최적화되어 있어 IronPDF는 어떤 크기의 프로젝트에도 빠르고 신뢰할 수 있는 성능을 제공합니다.

  5. 통합의 용이성: .NET Framework 및 .NET Core를 위해 설계된 IronPDF는 C# 응용 프로그램과 원활하게 통합되어 개발자에게 간단한 설정 프로세스와 포괄적인 문서를 제공합니다.

왜 IronPDF를 선택해야 할까요?

IronPDF는 기능, 개발자 지원 및 성능의 결합으로 다른 솔루션 중에서 돋보입니다. 종종 광범위한 구성이나 외부 의존성이 필요한 오픈 소스 대안과 달리 IronPDF는 기능성 손실 없이 개발을 단순화하는 독립적인 솔루션입니다. 청구서, 보고서 생성 또는 웹 콘텐츠 아카이빙이 필요한 경우 IronPDF는 개발자가 전문적인 결과를 신속하고 효율적으로 달성할 수 있는 도구를 제공합니다.

IronPDF는 HTML에서 PDF로의 작업 흐름에서 신뢰성, 확장성 및 사용 용이성을 중시하는 개발자에게 실용적인 선택입니다.

IronPDF를 사용하여 HTML을 PDF로 변환하는 방법

using IronPdf;

class Program
{
    static void Main()
    {
        // Specify license key
        IronPdf.License.LicenseKey = "Your Key";

        // Create a new HtmlToPdf object using ChromePdfRenderer
        var Renderer = new ChromePdfRenderer();

        // Define the HTML string to be converted
        string htmlContent = "<html><body><h1>IronPDF: Better than Open source</h1></body></html>";

        // Convert the HTML string to a PDF document
        var document = Renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF document to a file
        document.SaveAs("html2Pdf.pdf");

        Console.WriteLine("PDF generated and saved successfully!");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Specify license key
        IronPdf.License.LicenseKey = "Your Key";

        // Create a new HtmlToPdf object using ChromePdfRenderer
        var Renderer = new ChromePdfRenderer();

        // Define the HTML string to be converted
        string htmlContent = "<html><body><h1>IronPDF: Better than Open source</h1></body></html>";

        // Convert the HTML string to a PDF document
        var document = Renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF document to a file
        document.SaveAs("html2Pdf.pdf");

        Console.WriteLine("PDF generated and saved successfully!");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Specify license key
		IronPdf.License.LicenseKey = "Your Key"

		' Create a new HtmlToPdf object using ChromePdfRenderer
		Dim Renderer = New ChromePdfRenderer()

		' Define the HTML string to be converted
		Dim htmlContent As String = "<html><body><h1>IronPDF: Better than Open source</h1></body></html>"

		' Convert the HTML string to a PDF document
		Dim document = Renderer.RenderHtmlAsPdf(htmlContent)

		' Save the PDF document to a file
		document.SaveAs("html2Pdf.pdf")

		Console.WriteLine("PDF generated and saved successfully!")
	End Sub
End Class
$vbLabelText   $csharpLabel

코드 스니펫 설명

  1. 라이선스 키 설정: 프로그램은 IronPDF 라이선스 키를 설정하는 것으로 시작하며, 이는 라이브러리의 모든 기능을 해제하는 데 필요합니다.

  2. 렌더러 생성: ChromePdfRenderer의 인스턴스를 초기화합니다. 이 구성 요소는 HTML 콘텐츠를 PDF 문서로 변환하는 역할을 하며, 원시 HTML과 최종 출력 간의 다리 역할을 합니다.

  3. HTML 콘텐츠 정의: PDF로 변환할 HTML 구조를 저장하기 위한 문자열 변수 htmlContent이 생성됩니다. 이 예제에서는 간단한 제목을 포함하고 있습니다.

  4. HTML을 PDF로 변환: HTML 문자열을 입력으로 전달하여 ChromePdfRenderer 인스턴스의 RenderHtmlAsPdf() 메소드를 호출합니다. 이 함수는 콘텐츠를 처리하고 그것을 PDF 문서로 변환합니다.

  5. PDF 저장: 마지막으로 생성된 PDF는 SaveAs() 메소드를 사용하여 'html2Pdf.pdf'라는 파일로 저장되어, 디스크에 보관되며 나중에 접근할 수 있습니다.

출력 PDF

HTML to PDF 변환기 C# 오픈 소스 (.NET 라이브러리 비교): 그림 5

라이센스 정보 (체험판 가능)

IronPDF는 전체 기능을 위해 유효한 라이선스 키가 필요합니다. 공식 웹 사이트에서 체험판 라이선스를 받을 수 있습니다. IronPDF 라이브러리를 사용하기 전에 다음과 같이 라이선스 키를 설정하세요:

IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key";
IronPdf.License.LicenseKey = "your key"
$vbLabelText   $csharpLabel

이는 라이브러리가 제한 없이 작동할 수 있도록 보장합니다.

결론

PuppeteerSharp은 복잡한 웹 페이지를 다루는 경우 특히 HTML을 PDF로 정확히 렌더링해야 하는 개발자에게 훌륭한 선택입니다. 그러나 고급 PDF 특정 기능, 성능 최적화, 통합 용이성이 필요한 응용 프로그램의 경우 IronPDF와 같은 전문 도구가 종종 더 나은 옵션입니다.

PdfSharp은 간단한 요구 사항을 가진 프로젝트에 특히 적합한 경량의 프로그래밍 가능한 PDF 생성 및 조작에 훌륭한 선택입니다. 그러나 응용 프로그램에서 HTML을 PDF로 변환하거나 고급 PDF 기능이 필요한 경우 IronPDF가 보다 효율적이고 기능이 풍부한 솔루션을 제공합니다.

Pdfium.NET SDK는 PDF 조작을 위한 강력한 도구이지만, IronPDF는 최신 HTML, CSS, JavaScript의 렌더링을 포함하여 직접 HTML에서 PDF로 변환을 네이티브 지원합니다. IronPDF는 HtmlToPdf.RenderHtmlAsPdf()와 같은 내장 메소드를 통해 워크플로우를 단순화하여 개발자에게 더 빠르고 효율적으로 만듭니다.

청구서, 보고서 생성 또는 웹 콘텐츠 아카이빙이 필요한 경우 IronPDF는 개발자가 전문적인 결과를 신속하고 효율적으로 달성할 수 있는 도구를 제공합니다.

IronPDF는 HTML에서 PDF로의 작업 흐름에서 신뢰성, 확장성 및 사용 용이성을 중시하는 개발자에게 실용적인 선택입니다.

자주 묻는 질문

C#에서 HTML을 PDF로 변환하는 방법은 무엇인가요?

IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 또한 IronPDF는 RenderHtmlFileAsPdf 메서드를 사용하여 HTML 파일을 직접 PDF로 변환하는 것도 지원합니다.

PDF 변환을 위해 IronPDF를 오픈 소스 라이브러리보다 사용하는 장점은 무엇입니까?

IronPDF는 최신 웹 표준에 대한 지원, 고급 PDF 기능 및 .NET 애플리케이션과의 간편한 통합과 함께 직접 HTML을 PDF로 변환할 수 있습니다. 이는 PuppeteerSharp, PdfSharp, Pdfium.NET SDK와 같은 오픈 소스 대안과 비교하여 전문적인 솔루션을 제공합니다.

IronPDF가 PDF 변환 중 복잡한 HTML, CSS 및 JavaScript를 처리할 수 있습니까?

네, IronPDF는 최신 웹 표준을 지원하여 HTML을 PDF로 변환할 때 복잡한 레이아웃, 스타일 및 인터랙티브 요소를 정확하게 렌더링합니다.

HTML을 PDF로 변환하기 위해 IronPDF 사용하려면 무엇이 필요합니까?

IronPDF를 사용하려면 유효한 라이선스 키가 필요합니다. 개발자는 공식 웹사이트에서 체험판 라이선스를 얻어 전체 기능을 사용할 수 있습니다.

IronPDF가 개발자에게 실용적인 선택이 되는 이유는 무엇입니까?

IronPDF는 신뢰성, 확장성, 사용의 용이함 및 HTML을 PDF로 변환하기 위한 강력한 기능으로 인해 실용적입니다. 이는 전문적인 PDF를 효율적이고 효과적으로 생성하기에 이상적입니다.

PDF 생성을 위한 PuppeteerSharp 사용의 몇 가지 제한 사항은 무엇입니까?

PuppeteerSharp는 Chromium 브라우저를 다운로드하고 번들링해야 하며, 이는 파일 크기를 증가시키고 자원이 많이 소모될 수 있습니다. 추가 기능으로 PDF를 향상하는 데 중점을 두지 않고 렌더링에 중점을 둡니다.

HTML을 PDF로 변환하는 측면에서 Pdfium.NET SDK는 IronPDF와 어떻게 다릅니까?

Pdfium.NET SDK는 HTML을 PDF로 변환하는 것을 기본적으로 지원하지 않으며, HTML 요소의 수동 렌더링이 필요합니다. 반면에, IronPDF는 직접 변환을 위한 내장 메서드를 제공하여 프로세스를 단순화합니다.

PdfSharp는 복잡한 HTML 구조를 PDF로 렌더링하는 데 적합합니까?

PdfSharp는 HTML을 PDF로 변환하는 것을 기본적으로 지원하지 않으며, 복잡한 레이아웃, 스타일 또는 JavaScript 처리에 어려움이 있을 수 있으며 HTML 구문 분석을 위해 추가 라이브러리가 필요합니다.

IronPDF는 PDF 조작을 위해 어떤 기능을 제공합니까?

IronPDF는 PDF에서 콘텐츠를 생성, 편집 및 추출하기 위한 도구를 제공합니다. HTML을 PDF로 직접 변환, 텍스트/이미지 추출 및 애플리케이션에 PDF 뷰어를 포함하는 것을 지원합니다.

IronPDF는 .NET 10과 호환됩니까? .NET 10 프로젝트에서 사용할 때 어떤 이점을 제공합니까?

예 — IronPDF는 .NET 10과 완전히 호환됩니다. .NET 10 프로젝트에서 특별한 우회 방법 없이 지원되며, 배열 인터페이스 메소드 비가상화와 같은 런타임 개선, 향상된 성능, 메모리 사용량 감소의 장점을 활용합니다.

.NET 10에서 IronPDF는 HTML에서 PDF로 변환을 위해 어떤 새로운 개선 사항을 제공합니까?

.NET 10에서 IronPDF는 최신 버전과 함께 '첫날' 지원을 제공하여 새 런타임과 완벽한 호환성을 보장합니다. 개발자는 시작 시간이 더 빠르고, 메모리 사용량이 적고, .NET 10 렌더링 및 JIT 엔진의 개선으로 인해 렌더링 성능이 향상됩니다.

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

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

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

아이언 서포트 팀

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