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

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

SelectPdf에서 IronPDF로의 마이그레이션은 오래된 렌더링 엔진을 사용하는 Windows 전용 솔루션에서 최신의, CSS3 및 JavaScript를 완벽하게 지원하는 크로스 플랫폼 라이브러리로 PDF 생성 워크플로를 변환합니다. 이 가이드는 SelectPdf가 지원할 수 없는 리눅스, Docker, Azure Functions 및 기타 클라우드 플랫폼에 배포할 수 있는 전체 단계별 마이그레이션 경로를 제공합니다.

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

SelectPdf 이해하기

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

그러나 잠재적인 사용자는 그 중요한 제한 사항을 인지해야 합니다. 크로스 플랫폼 기능을 광고하지만, SelectPdf는 Windows 환경에서만 작동합니다. 이는 Azure Functions나 Docker와 같은 컨테이너와 같은 클라우드 기반 배포 솔루션을 고려할 때 상당한 장벽을 제공합니다. 더 나아가 무료 버전은 최대 5페이지까지만 허용되며, 그 이후로는 과도한 워터마킹이 적용되어 크게 제한됩니다. SelectPdf는 구식 Blink 포크와 WebKit 기반의 아키텍처를 활용하여, CSS 그리드 및 고급 flexbox와 같은 현대 웹 기술과의 호환성 문제를 일으킵니다.

SelectPdf의 주요 제한 사항

문제 영향 IronPDF 솔루션
Windows 전용 Linux, Docker, Azure Functions에 배포할 수 없음 전체 크로스 플랫폼 지원
구식 렌더링 엔진 현대 CSS가 실패하고 레이아웃이 깨짐 최신 Chromium
5페이지 무료 버전 제한 5페이지 이후로 과도한 워터마킹 관대 한 체험판
.NET 10 지원 없음 미래 대비 문제 .NET 10 완전 지원
클라우드 배포 차단 AWS Lambda, Azure Functions 사용 불가 클라우드 네이티브

SelectPdf vsIronPDF비교

기능 SelectPdf IronPDF
플랫폼 지원 Windows 전용 전체 크로스 플랫폼, 10개 이상의 배포판
최신 웹 표준 지원 제한적 (구식 Blink) 전체 CSS3, 최신 Chromium
최대 무료 버전 페이지 제한 5 페이지 유연함, 엄격한 제한 없음
가격 $499부터 시작 투명하고 유연한 가격책정
.NET 10 지원 없음 지원됨
클라우드 환경에서의 배포 지원되지 않음 완전히 지원
CSS Grid 제한적 지원됨
Flexbox 제한적 지원됨
CSS Variables 지원되지 않음 지원됨
Docker 지원되지 않음 공식 이미지
Azure Functions 지원되지 않음 지원됨
AWS Lambda 지원되지 않음 지원됨

.NET 10 및 C# 14 채택을 2025년 및 2026년에 계획하고 있는 팀에게, SelectPdf는 명백히 .NET 10을 지원하지 않아 미래 대비 문제를 만듭니다. IronPDF는 모든 최신 .NET 버전에 대한 완전한 지원을 제공합니다.


시작하기 전에

필수 조건

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

NuGet 패키지 변경 사항

# Remove SelectPdf
dotnet remove package Select.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
# Remove SelectPdf
dotnet remove package Select.HtmlToPdf

# 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는 ChromePdfRendererRenderHtmlAsPdf()을 함께 사용하며, PdfDocument를 반환하여 SaveAs()으로 저장합니다. 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는 최신 CSS와 잘 맞지 않는 오래된 Blink/WebKit 포크를 사용하지만, IronPDF는 CSS3 및 JavaScript를 완벽히 지원하는 최신 안정적인 Chromium을 사용합니다. 더 많은 정보를 보려면 튜토리얼을 참조하세요.

예제 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+ | ✅ | ✅ || Windows 10/11 | ✅ | ✅ || Ubuntu 20.04+ | ❌ | ✅ || Debian 10+ | ❌ | ✅ || CentOS 7+ | ❌ | ✅ || Alpine Linux | ❌ | ✅ || Amazon Linux 2 | ❌ | ✅ || macOS 10.15+ | ❌ | ✅ || Azure App Service (Linux) | ❌ | ✅ || Azure Functions | ❌ | ✅ || AWS Lambda | ❌ | ✅ || Docker (Linux) | ❌ | ✅ || Kubernetes | ❌ | ✅ |

낡은 렌더링 엔진

CSS 기능 지원 비교

SelectPdf는 최신 웹 표준을 따라잡지 못한 오래된 Blink/WebKit 포크를 사용합니다:

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

이동 후 새로운 기능

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

크로스 플랫폼 배포

// ✅IronPDF- Works everywhere
using IronPdf;

// Azure App Service (Linux) - WORKS
// Docker container - WORKS
// AWS Lambda - 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 App Service (Linux) - WORKS
// Docker container - WORKS
// AWS Lambda - 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

' ✅IronPDF- Works everywhere

' Azure App Service (Linux) - WORKS
' Docker container - WORKS
' AWS Lambda - 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;)
  • HtmlToPdfChromePdfRenderer로 교체
  • ConvertHtmlString()RenderHtmlAsPdf()로 교체
  • ConvertUrl()RenderUrlAsPdf()로 교체
  • 옵션 속성 이름 업데이트 (Options.PdfPageSizeRenderingOptions.PaperSize)
  • PdfPageSizePdfPaperSize로 변환
  • PdfPageOrientationPdfPaperOrientation로 변환
  • doc.Save()pdf.SaveAs()로 교체
  • 모든 doc.Close() 호출 제거
  • 페이지 번호 자리 표시자 수정 ({page_number}{page}, {total_pages}{total-pages})
  • 애플리케이션 시작 시 라이선스 초기화 추가

마이그레이션 이후

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

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

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

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

아이언 서포트 팀

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