푸터 콘텐츠로 바로가기
마이그레이션 가이드

SelectPdf에서 IronPDF로의 마이그레이션 방법 (C#)

SelectPdf에서 IronPDF로 마이그레이션하면 기본 렌더링 엔진이 내장 WebKit이자 옵션으로 Blink 엔진이 탑재된 Chromium 124 (2024년 4월)와 함께 제공되는 Windows 전용 라이브러리를 현재 Chromium 및 CSS3 전체 지원으로 교체하는 크로스 플랫폼 라이브러리로 워크플로우가 변경됩니다. 이 가이드는 SelectPdf가 지원하지 않는 Linux, Docker,Azure Functions및 기타 클라우드 플랫폼으로의 배포를 가능하게 하는 완전한 단계별 마이그레이션 경로를 제공합니다.

SelectPdf에서 IronPDF로 마이그레이션해야 하는 이유

SelectPdf이해하기

SelectPdf는 HTML 콘텐츠를 C#을 사용하여 PDF로 변환하기 위해 설계된 상업용 라이브러리입니다. 이 라이브러리는 애플리케이션 내에서 PDF 생성 기능을 원활하게 통합해야 하는 개발자를 대상으로 합니다. SelectPdf의 강점은 간단한 API에 있으며, 이를 통해 PDF 생성에 처음 접하는 사람들에게 매력적인 옵션이 됩니다.

그러나 잠재적인 사용자는 그 중요한 제한 사항을 인지해야 합니다. 벤더의 자체 문서에 따르면 SelectPdf는 Windows에서만 실행됩니다 – Linux, macOS, 또는 Xamarin이 아닙니다. 이는 LinuxAzure Functions또는 Docker와 같은 클라우드 기반 배포 솔루션을 고려할 때 큰 장애물입니다. 커뮤니티 에디션은 PDF 당 5페이지로 제한되며, 라이선스 키를 구매할 때까지 모든 페이지에 워터마크가 적용됩니다. SelectPdf의 기본 렌더링 엔진은 내장 WebKit입니다; 선택적 Blink 엔진은 최신 Chrome보다 뒤처지고 CSS 그리드 및 Flexbox gap 속성과 같은 최신 CSS 기능과 문제를 일으킬 수 있는 Chromium 124(2024년 4월)에 함께 제공됩니다.

SelectPdf의 주요 제한 사항

문제 영향 IronPDF 솔루션
Windows 전용 Linux, Docker, Azure Functions에 배포할 수 없음 전체 크로스 플랫폼 지원
기본 WebKit 엔진; 옵션으로 Blink는 Chromium 124 (2024년 4월)과 함께 제공 최신 CSS 기능은 기본 엔진에서 실패할 수 있습니다. 최신 Chromium
5페이지 무료 버전 제한 라이선스가 될 때까지 모든 페이지에 페이지별 워터마크 적용 관대 한 체험판
.NET 10은 Windows에서만 Linux/macOS/컨테이너 배포 없음 모든 플랫폼에 걸쳐 .NET 10 전체 지원
클라우드 배포 차단 (비 Windows) AWS Lambda 또는 Linux Azure Functions를 사용할 수 없습니다 클라우드 네이티브

SelectPdfvsIronPDF비교

기능 SelectPdf IronPDF
플랫폼 지원 Windows 전용 전체 크로스 플랫폼, 10개 이상의 배포판
최신 웹 표준 지원 기본적으로 WebKit; Blink 옵션은 Chromium 124 (2024년 4월)와 함께 제공 전체 CSS3, 현재 Chromium
최대 무료 버전 페이지 제한 5페이지 + 페이지별 워터마크 유연함, 엄격한 제한 없음
가격 $499 싱글 개발자부터 $1,599 Enterprise OEM 투명하고 유연한 가격책정
.NET 10 지원 예, 하지만 Windows만 지원 예, 모든 플랫폼
클라우드 환경에서의 배포 Windows 타겟만 지원 완벽하게 지원됨 (Windows + Linux)
CSS Grid WebKit: 제한됨; Blink (Chromium 124): 지원됨 지원됨
Flexbox (gap 속성) WebKit: 지원되지 않음; Blink: 지원됨 지원됨
CSS Variables WebKit: 지원되지 않음; Blink: 지원됨 지원됨
Docker (Linux) 지원되지 않음 공식 이미지
Azure Functions (Linux) 지원되지 않음 지원됨
AWS Lambda 지원되지 않음 지원됨

SelectPdf의 NetCore 패키지는 .NET Standard 2.0을 대상으로 하며 .NET 5부터 .NET 10까지와 호환된다고 문서화되어 있습니다. 하지만 Windows에서만, 이는 Linux 컨테이너, AWS 람다 또는 Linux 기반 Azure App Service로 배포하는 팀에게는 그 호환성을 중화시킵니다. IronPDF는 동일한 .NET 버전을 지원하며 Windows, Linux, macOS, Docker에서 실행됩니다.


시작하기 전에

필수 조건

  1. .NET Environment: .NET Framework 4.6.1+ or .NET Core 3.1+ / .NET 5/6/7/8/9/10+
  2. NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
  3. IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요

NuGet 패키지 변경 사항

# RemoveSelectPdf(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# Install IronPDF
dotnet add package IronPdf
# RemoveSelectPdf(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# Install IronPDF
dotnet add package IronPdf
SHELL

라이선스 구성

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

완전한 API 참조

네임스페이스 변경

// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
' Before: SelectPdf
Imports SelectPdf

' After: IronPDF
Imports IronPdf
Imports IronPdf.Engines.Chrome
$vbLabelText   $csharpLabel

핵심 API 매핑

SelectPdf IronPDF 노트
HtmlToPdf ChromePdfRenderer 핵심 변환 클래스
converter.ConvertHtmlString(html) renderer.RenderHtmlAsPdf(html) HTML 문자열 변환
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url) URL 변환
doc.Save(path) pdf.SaveAs(path) 파일에 저장
doc.Close() 필요 없음 IronPDF는 정리를 처리함
converter.Options.PdfPageSize renderer.RenderingOptions.PaperSize 용지 크기
converter.Options.PdfPageOrientation renderer.RenderingOptions.PaperOrientation 방향
converter.Options.MarginTop renderer.RenderingOptions.MarginTop 상단 여백
converter.Options.MarginBottom renderer.RenderingOptions.MarginBottom 하단 여백
converter.Options.MarginLeft renderer.RenderingOptions.MarginLeft 왼쪽 여백
converter.Options.MarginRight renderer.RenderingOptions.MarginRight 오른쪽 여백
PdfPageSize.A4 PdfPaperSize.A4 A4 크기 열거형
PdfPageOrientation.Portrait PdfPaperOrientation.Portrait 세로 방향 열거형
PdfPageOrientation.Landscape PdfPaperOrientation.Landscape 가로 방향 열거형
{page_number} {page} 페이지 번호 플레이스홀더
{total_pages} {total-pages} 총 페이지 플레이스홀더

코드 마이그레이션 예제

예제 1: HTML 문자열을 PDF로 변환

이전 (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();

        Console.WriteLine("PDF generated from HTML string");
    }
}
Imports SelectPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

        Dim converter As New HtmlToPdf()
        Dim doc As PdfDocument = converter.ConvertHtmlString(htmlContent)
        doc.Save("document.pdf")
        doc.Close()

        Console.WriteLine("PDF generated from HTML string")
    End Sub
End Class
$vbLabelText   $csharpLabel

이후 (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");

        Console.WriteLine("PDF generated from HTML string");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("document.pdf")

        Console.WriteLine("PDF generated from HTML string")
    End Sub
End Class
$vbLabelText   $csharpLabel

이 예제는 핵심 API 차이점을 보여줍니다. SelectPdf는 HtmlToPdf를 변환기 클래스로 사용하여 ConvertHtmlString()를 호출하여 PdfDocument을(를) 생성한 다음 Save()Close()을(를) 사용해 지속하고 정리합니다.

IronPDF는 RenderHtmlAsPdf()과 함께 ChromePdfRenderer을(를) 사용하여, SaveAs()로 저장된 PdfDocument을(를) 반환합니다. Close() 호출이 제거되었습니다. IronPDF는 자원 관리를 자동으로 처리합니다. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요.

예제 2: URL에서 PDF로 변환

이전 (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();

        Console.WriteLine("PDF created successfully");
    }
}
Imports SelectPdf
Imports System

Class Program
    Shared Sub Main()
        Dim converter As New HtmlToPdf()
        Dim doc As PdfDocument = converter.ConvertUrl("https://www.example.com")
        doc.Save("output.pdf")
        doc.Close()

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

이후 (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

SelectPdf의 ConvertUrl() 메서드는 IronPDF의 RenderUrlAsPdf()와 직접 매핑됩니다. 결정적인 차이는 렌더링 엔진에 있습니다: SelectPdf는 내부 WebKit을 기본값으로 사용하며 Chromium 124(2024년 4월)의 Blink 엔진을 옵션으로 제공합니다. 반면 IronPDF는 현재 안정된 Chromium을 사용하여 완전한 CSS3 및 JavaScript 지원을 제공합니다. 더 많은 정보를 보려면 튜토리얼을 참조하세요.

예제 3: 사용자 지정 페이지 설정 및 여백

이전 (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();

        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();

        Console.WriteLine("PDF with custom settings created");
    }
}
Imports SelectPdf
Imports System

Module Program
    Sub Main()
        Dim converter As New HtmlToPdf()

        converter.Options.PdfPageSize = PdfPageSize.A4
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait
        converter.Options.MarginTop = 20
        converter.Options.MarginBottom = 20
        converter.Options.MarginLeft = 20
        converter.Options.MarginRight = 20

        Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
        Dim doc As PdfDocument = converter.ConvertHtmlString(html)
        doc.Save("custom-settings.pdf")
        doc.Close()

        Console.WriteLine("PDF with custom settings created")
    End Sub
End Module
$vbLabelText   $csharpLabel

이후 (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");

        Console.WriteLine("PDF with custom settings created");
    }
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("custom-settings.pdf")

        Console.WriteLine("PDF with custom settings created")
    End Sub
End Module
$vbLabelText   $csharpLabel

페이지 설정 패턴은 거의 동일하며, 속성 이름 변경이 간단합니다:

  • converter.Options.PdfPageSizerenderer.RenderingOptions.PaperSize
  • converter.Options.PdfPageOrientationrenderer.RenderingOptions.PaperOrientation
  • PdfPageSize.A4PdfPaperSize.A4
  • PdfPageOrientation.PortraitPdfPaperOrientation.Portrait

여백 속성은 동일한 이름과 단위를 유지합니다.


Windows 전용 문제점

SelectPdf의 플랫폼 제한

어떠한 마케팅 주장에도 불구하고, SelectPdf는 명확히 지원하지 않습니다:

  • Linux (어떤 배포판도)
  • macOS
  • Docker 컨테이너
  • Azure Functions
  • AWS Lambda
  • Google Cloud Functions
  • 어떤 ARM 기반 시스템도

이는 근본적인 아키텍처 제한 사항입니다—SelectPdf는 Windows 전용 라이브러리에 의존하며 포팅할 수 없습니다.

플랫폼 지원 비교

플랫폼 SelectPdf IronPDF
Windows Server 2019+
윈도우 10/11
Ubuntu 20.04+
Debian 10+
CentOS 7+
Alpine Linux
Amazon Linux 2
macOS 10.15+
Azure 앱 서비스(리눅스)
Azure Functions
AWS 람다
Docker (Linux)
Kubernetes

낡은 렌더링 엔진

CSS 기능 지원 비교

SelectPdf는 세 가지 엔진을 제공합니다(벤더 문서 참조): 내부 WebKit (기본값), Blink (v19.1에서 소개됨, Chromium 124.0.6367.201과 함께 제공 — 2024년 4월 출시), 및 Chromium/CEF. 기본 WebKit 엔진은 최신 웹 표준과 보조를 맞추지 못했습니다.

CSS 기능 SelectPdf(WebKit 기본값) SelectPdf(Blink, Chromium 124) IronPDF
CSS 그리드 ⚠ 부분적/깨짐 ✅ 전체
플렉스박스 (기본)
플렉스박스 (간격 속성)
CSS 변수
CSS calc() ⚠ 제한됨
@media print ⚠ 제한됨
@font-face ⚠ 제한됨
웹 폰트 ⚠ 제한됨
SVG ⚠ 기본 ✅ 전체
CSS 변형 ⚠ 제한됨
CSS 애니메이션 ⚠ 부분적

이동 후 새로운 기능

IronPDF로 마이그레이션한 후, SelectPdf가 제공할 수 없는 기능을 얻게 됩니다:

크로스 플랫폼 배포

// ✅IronPDF- Works everywhere
using IronPdf;

// Azure 앱 서비스(리눅스) - WORKS
// Docker container - WORKS
// AWS 람다 - WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
// ✅IronPDF- Works everywhere
using IronPdf;

// Azure 앱 서비스(리눅스) - WORKS
// Docker container - WORKS
// AWS 람다 - WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf

' Azure 앱 서비스(리눅스) - WORKS
' Docker container - WORKS
' AWS 람다 - WORKS
' GitHub Actions on ubuntu-latest - WORKS
' macOS development - WORKS

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

최신 CSS 지원

// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
Imports IronPdf

' ✅IronPDF- Uses latest stable Chromium
Dim renderer As New ChromePdfRenderer()

Dim html As String = "
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>"

Dim pdf = renderer.RenderHtmlAsPdf(html)
' All modern CSS features render correctly!
$vbLabelText   $csharpLabel

Close() 필요 없음

IronPDF는 리소스 관리를 자동으로 처리합니다:

// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}
// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}
' Option 1: Let garbage collection handle it
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' No Close() needed

' Option 2: Explicit disposal
Using pdf = renderer.RenderHtmlAsPdf(html)
    pdf.SaveAs("output.pdf")
End Using
$vbLabelText   $csharpLabel

마이그레이션 체크리스트

사전 마이그레이션

  • 코드베이스에서 모든SelectPdf사용 감사
  • 매핑을 위한 현재 변환기 옵션 문서화
  • 헤더/푸터 구현 식별
  • 페이지 번호 자리표시자 구문 확인 ({page_number}{page})
  • 기본 URL 처리 패턴 기록
  • 대상 배포 플랫폼 검증
  • ironpdf.com에서IronPDF라이선스 키 획득

코드 업데이트

  • Select.HtmlToPdf NuGet 패키지 제거
  • IronPdf NuGet Install-Package
  • 네임스페이스 가져오기 업데이트 (using SelectPdf;using IronPdf;)
  • HtmlToPdf을(를) ChromePdfRenderer으로 대체
  • ConvertHtmlString()을(를) RenderHtmlAsPdf()으로 대체
  • ConvertUrl()을(를) RenderUrlAsPdf()으로 대체
  • 옵션 속성 이름 업데이트 (Options.PdfPageSizeRenderingOptions.PaperSize)
  • PdfPageSize을(를) PdfPaperSize으로 변환
  • PdfPageOrientation을(를) PdfPaperOrientation으로 변환
  • doc.Save()을(를) pdf.SaveAs()으로 대체
  • 모든 doc.Close() 호출 제거
  • 페이지 번호 자리표시자 수정 ({page_number}{page}, {total_pages}{total-pages})
  • 애플리케이션 시작 시 라이선스 초기화 추가

마이그레이션 이후

  • 모든 단위 테스트 실행
  • CSS 렌더링 검증 (특히 Grid/Flexbox)
  • JavaScript 실행 테스트
  • 헤더/푸터 페이지 번호 확인
  • 대상 플랫폼에서 테스트 (Linux, Docker 등)
  • 성능 테스트
  • PDF 출력 품질 비교
  • CI/CD 파이프라인을 업데이트하세요
  • 클라우드 배포 테스트 (적용 가능한 경우)

참고해 주세요SelectPDF는 해당 소유자의 등록 상표입니다. 이 사이트는 Outside Software SRL 또는 SelectPdf와 관련이 없으며, 승인되지 않으며, 후원받는 것도 아닙니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

Curtis Chau
기술 문서 작성자

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

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

아이언 서포트 팀

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