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

C#에서 ExpertPdf에서 IronPDF로 마이그레이션하는 방법

ExpertPdf는 Outside Software Inc.에서 게시한 .NET용 상업적 HTML-to-PDF 변환기입니다. nuget.org의 최신 릴리스는 v20.1.0(2025년 4월)이며, 스위트는 여전히 적극적으로 배송 중 - 마찰은 제품 형태에 있으며, 폐기되지 않았습니다. ExpertPdf는 Trident(IE) 엔진과 v12.2에서 추가된 'WebKit2' 엔진을 사용합니다; 현대적인 Chromium은 기본값이 아닙니다. 공공 ComponentSource 목록은 역사적으로 HtmlToPdf 변환기를 대략 $550-$1,200로 보여주었습니다(벤더와 직접 확인). 툴킷은 또한 HtmlToPdf, MergePdf, PdfSecurity, SplitPdf, PdfToImage, PdfCreator와 같은 별도의 NuGet 패키지로 나뉘어져 있으며 각각 일반적으로 별도로 라이선스가 부여됩니다. 이 가이드는 Chromium 최신 렌더링, 빈번한 릴리스 및 올인원 패키지를 가진 .NET PDF 라이브러리 IronPDF로의 단계별 마이그레이션 경로를 제공합니다.

왜 ExpertPdf에서 IronPDF로 마이그레이션해야 하는가?

ExpertPdf는 개발 팀이 현대적인 대안을 평가하도록 동기를 부여하는 여러 도전을 제시합니다. 이러한 문제를 이해하는 것은 마이그레이션 전략을 계획하는 데 필수적입니다.

ExpertPdf문제들

  1. 희박한 문서화, 느린 속도: html-to-pdf.net에 참조 문서는 존재하지만 튜토리얼, 기능 기사 및 변경 기록 항목은 드뭅니다. v20.1(2025년 4월)의 릴리스 노트는 '버그 픽스 및 성능 향상'을 나열하며, 주요 헤드라인 기능은 없습니다.

  2. 오래된 렌더링 파이프라인: ExpertPdf는 Trident(IE) 엔진과 v12.2에서 추가된 'WebKit2' 엔진을 제공합니다; 현대적인 Chromium은 기본값이 아닙니다. CSS3 기능인 Flexbox, Grid 및 CSS 변수는 WebKit2 엔진에서 가장 잘 렌더링됩니다 — 대규모 부동산을 마이그레이션하기 전에 대상 HTML을 확인하십시오.

  3. 노화된 스택에 대한 프리미엄 가격: 공공 ComponentSource 목록은 역사적으로 HtmlToPdf 변환기를 대략 $550-$1,200로 보여주었습니다(벤더와 직접 확인하십시오 — expertpdf.net의 주문 페이지는 작성 시 접근 불가).

  4. 분리된 제품 세트: ExpertPdf는 별개의 패키지들을 판매합니다 — ExpertPdf.HtmlToPdf.NetCore / ExpertPdfHtmlToPdf, ExpertPdf.MergePdf, ExpertPdf.PdfSecurity, ExpertPdf.SplitPdf, ExpertPdf.PdfToImage, ExpertPdf.PdfCreator — 각 패키지는 보통 별도로 라이선스가 제공됩니다.

  5. 현대 .NET에 맞는 기본 대상 없음: .NetCore 패키지는 .NET Standard 2.0 / .NET Framework 4.6.1을 대상으로 하므로 .NET 5/6/7/8/9에서 실행되지만, 원래의 다중 타겟 빌드, 트리밍에 친숙한 어셈블리 또는 비동기 우선 API를 사용할 수 없습니다.

아키텍처 비교

측면 ExpertPdf IronPDF
공급업체 Outside Software Inc. Iron Software
최신 릴리스 (nuget.org) v20.1.0 (2025년 4월) 지속적으로 업데이트됨
문서화 참조 문서만, 희박한 튜토리얼 지속적으로 업데이트됨
렌더링 엔진 트라이던트 (IE) + 'WebKit2' (v12.2에서 추가됨) 최신 Chromium
CSS 지원 CSS3는 WebKit2에서 가장 좋습니다; 유산 부분적 전체 CSS3 (Flexbox, Grid)
가격 대략 $550–$1,200 (벤더와 확인) ironpdf.com/pricing 참조
제품 모델 단편화됨 (6개 이상의 NuGet 패키지) 모든 기능 통합된 라이브러리
최신 .NET .NET Standard 2.0 (.NET 5-9에서 실행됨) .NET 6/7/8/9+ 다중 타겟
비동기 지원 제한적 완전한 async/await

주요 마이그레이션 혜택

  1. 현대적 렌더링: 최신 Chromium 엔진을 사용한 픽셀-퍼펙트 출력
  2. 올인원 패키지: PDF 생성, 병합, 보안, 추출이 하나의 NuGet에 포함됨
  3. 활발한 개발: 매달 새로운 기능과 보안 패치가 포함된 업데이트
  4. 더 나은 문서화: 포괄적인 튜토리얼 및 예제
  5. 진정한 크로스 플랫폼: Windows, Linux, macOS, Docker 지원

이전 준비

필수 조건

환경이 다음 요구 사항을 충족하는지 확인하세요:

  • .NET Framework 4.6.2+ 또는 .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ 또는 VS Code와 C# 확장
  • NuGet 패키지 관리자 접근 -IronPDF라이선스 키 (ironpdf.com에서 무료 체험판 제공)

ExpertPdf사용 감사

해당 명령어를 솔루션 디렉토리에서 실행하여 모든ExpertPdf참조를 식별하세요:

# Find allExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find allExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
SHELL

nuget.org에서 정확한 이름을 확인할 일반적인ExpertPdf패키지:

  • ExpertPdfHtmlToPdf (.NET Framework) / ExpertPdf.HtmlToPdf.NetCore (.NET Core / 5-9) — HTML to PDF
  • ExpertPdf.MergePdf — PDF 병합
  • ExpertPdf.PdfSecurity — 암호화 및 비밀번호
  • ExpertPdf.SplitPdf — PDF 분할
  • ExpertPdf.PdfToImage — PDF를 이미지로 변환
  • ExpertPdf.PdfCreator — 전체 PDF SDK (그리기, 양식, 서명)

핵심 패턴 변경 이해하기

ExpertPdf는 PdfConverter를 사용하여 직접 바이트 배열 반환 메서드를 제공합니다. IronPDF는 ChromePdfRenderer를 사용하여 저장하기 전에 추가적인 조작 기능을 제공하는 PdfDocument 객체를 반환합니다.

단계별 마이그레이션 프로세스

1단계: NuGet 패키지 업데이트

모든ExpertPdf패키지를 제거하고 IronPDF를 설치하세요:

# Remove allExpertPdfpackages (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator

# Install IronPDF(includes all features)
dotnet add package IronPdf
# Remove allExpertPdfpackages (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator

# Install IronPDF(includes all features)
dotnet add package IronPdf
SHELL

2단계: 네임스페이스 참조 업데이트

ExpertPdf 네임스페이스를 IronPDF로 교체하세요:

// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

3단계: 라이선스 구성

ExpertPdf는 변환기별 라이센싱을 사용합니다. IronPDF는 하나의 글로벌 라이센스를 사용합니다:

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

완전한 API 마이그레이션 참조

핵심 클래스 매핑

ExpertPdf 클래스 IronPDF 동등
PdfConverter ChromePdfRenderer
PdfDocumentOptions ChromePdfRenderOptions
PdfHeaderOptions TextHeaderFooter 또는 HtmlHeaderFooter
PdfFooterOptions TextHeaderFooter 또는 HtmlHeaderFooter
PDFMerge PdfDocument.Merge()

메서드 매핑

ExpertPdf 메서드 IronPDF 메소드
pdfConverter.GetPdfBytesFromHtmlString(html) renderer.RenderHtmlAsPdf(html).BinaryData
pdfConverter.GetPdfBytesFromUrl(url) renderer.RenderUrlAsPdf(url).BinaryData
pdfConverter.GetPdfBytesFromHtmlFile(path) renderer.RenderHtmlFileAsPdf(path).BinaryData
pdfConverter.SavePdfFromUrlToFile(url, path) renderer.RenderUrlAsPdf(url).SaveAs(path)

옵션 매핑

ExpertPdf 옵션 IronPDF RenderingOptions
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 PaperSize = PdfPaperSize.A4
PdfDocumentOptions.PdfPageOrientation = Portrait PaperOrientation = PdfPaperOrientation.Portrait
PdfDocumentOptions.MarginTop MarginTop
PdfHeaderOptions.HeaderText TextHeader.CenterText
PdfFooterOptions.FooterText TextFooter.RightText

페이지 번호 토큰 변환

ExpertPdf와 IronPDF는 페이지 번호에 대해 다른 플레이스홀더 구문을 사용합니다:

ExpertPdf IronPDF
&p; {page}
&P; {total-pages}

코드 마이그레이션 예제

HTML을 PDF로 변환

기본 HTML에서 PDF로 변환은 ExpertPdf의 바이트 배열 패턴에서 IronPDF의 문서 객체 접근으로의 변경을 보여줍니다.

ExpertPdf 구현:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

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

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Convert HTML string to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes);

        Console.WriteLine("PDF created successfully!");
    }
}
Imports ExpertPdf.HtmlToPdf
Imports System

Module Program
    Sub Main()
        ' Create the PDF converter
        Dim pdfConverter As New PdfConverter()

        ' Convert HTML string to PDF
        Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>")

        ' Save to file
        System.IO.File.WriteAllBytes("output.pdf", pdfBytes)

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

IronPDF 구현:

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

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        pdf.SaveAs("output.pdf");

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

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");

        // Save to file
        pdf.SaveAs("output.pdf");

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

Class Program
    Shared Sub Main()
        ' Create a PDF from HTML string
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>")

        ' Save to file
        pdf.SaveAs("output.pdf")

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

IronPDF의 접근 방식은 추가적인 조작(병합, 워터마킹, 보안)을 저장 전에 가능하게 하는 PdfDocument 객체를 반환합니다. 더 많은 옵션을 보려면 HTML to PDF 문서를 참조하세요.

페이지 설정이 있는 URL을 PDF로

ExpertPdf 구현:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;

        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;

        // Convert URL to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");

        // Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);

        Console.WriteLine("PDF from URL created successfully!");
    }
}
Imports ExpertPdf.HtmlToPdf
Imports System

Module Program
    Sub Main()
        ' Create the PDF converter
        Dim pdfConverter As New PdfConverter()

        ' Set page size and orientation
        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait

        ' Convert URL to PDF
        Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromUrl("https://www.example.com")

        ' Save to file
        System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes)

        Console.WriteLine("PDF from URL created successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF 구현:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save to file
        pdf.SaveAs("webpage.pdf");

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

        // Convert URL to PDF
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save to file
        pdf.SaveAs("webpage.pdf");

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

Class Program
    Shared Sub Main()
        ' Create a PDF renderer
        Dim renderer = New ChromePdfRenderer()

        ' Set page size and orientation
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait

        ' Convert URL to PDF
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")

        ' Save to file
        pdf.SaveAs("webpage.pdf")

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

IronPDF의 RenderingOptions는 페이지 구성에 직접적인 속성 접근을 제공합니다. 더 많은 옵션을 보려면 URL to PDF 문서를 참조하세요.

페이지 번호가 있는 헤더 및 푸터

이 예제는 헤더/푸터 구성의 중요한 차이를 보여줍니다—ExpertPdf는 &P; 토큰과 함께 PdfHeaderOptionsPdfFooterOptions 클래스를 별도로 사용하지만, IronPDF는 {total-pages} 자리 표시자와 함께 TextHeaderFooter를 사용합니다.

ExpertPdf 구현:

// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;

        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;

        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");

        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        // Create the PDF converter
        PdfConverter pdfConverter = new PdfConverter();

        // Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = true;
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;

        // Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = true;
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;

        // Convert HTML file to PDF
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");

        // Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
Imports ExpertPdf.HtmlToPdf
Imports System

Class Program
    Shared Sub Main()
        ' Create the PDF converter
        Dim pdfConverter As New PdfConverter()

        ' Enable header
        pdfConverter.PdfHeaderOptions.ShowHeader = True
        pdfConverter.PdfHeaderOptions.HeaderText = "Document Header"
        pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center

        ' Enable footer with page numbers
        pdfConverter.PdfFooterOptions.ShowFooter = True
        pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;"
        pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right

        ' Convert HTML file to PDF
        Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlFile("input.html")

        ' Save to file
        System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes)

        Console.WriteLine("PDF with headers and footers created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 구현:

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };

        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };

        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");

        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");

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

class Program
{
    static void Main()
    {
        // Create a PDF renderer
        var renderer = new ChromePdfRenderer();

        // Configure header
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Document Header",
            DrawDividerLine = true
        };

        // Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true
        };

        // Convert HTML file to PDF
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");

        // Save to file
        pdf.SaveAs("output-with-header-footer.pdf");

        Console.WriteLine("PDF with headers and footers created successfully!");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        ' Create a PDF renderer
        Dim renderer = New ChromePdfRenderer()

        ' Configure header
        renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
            .CenterText = "Document Header",
            .DrawDividerLine = True
        }

        ' Configure footer with page numbers
        renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
            .RightText = "Page {page} of {total-pages}",
            .DrawDividerLine = True
        }

        ' Convert HTML file to PDF
        Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")

        ' Save to file
        pdf.SaveAs("output-with-header-footer.pdf")

        Console.WriteLine("PDF with headers and footers created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF의 TextHeaderFooter는 선택적인 구분선으로 LeftText, CenterText, 및 RightText 속성을 제공합니다. HTML 기반 헤더의 경우, HtmlHeaderFooter을 사용하십시오. 더 많은 옵션은 헤더 및 푸터 문서를 참조하세요.

중요한 마이그레이션 노트

라이센스 키 위치

ExpertPdf는 변환기별 라이센싱을 사용합니다. IronPDF는 시작 시 한 번 설정되는 하나의 글로벌 라이센스를 사용합니다:

//ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
//ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
'ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"

'IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

페이지 번호 토큰 변환

ExpertPdf 토큰을IronPDF플레이스홀더로 교체하세요:

// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

분산된 패키지 통합

ExpertPdf의 개별 패키지(PDFMerge, PDFSecurity, PDFSplit, PdfToImage)는 IronPDF의 하나의 패키지에 모두 포함됩니다:

//ExpertPdf- requires separate ExpertPdf.MergePdf package
PDFMerge merger = new PDFMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");

//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
//ExpertPdf- requires separate ExpertPdf.MergePdf package
PDFMerge merger = new PDFMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");

//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
' ExpertPdf- requires separate ExpertPdf.MergePdf package
Dim merger As New PDFMerge()
merger.AppendPDFFile("file1.pdf")
merger.AppendPDFFile("file2.pdf")
merger.SaveMergedPDFToFile("merged.pdf")

' IronPDF- included in main package
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

더 많은 병합 옵션을 보려면 PDF 병합 문서를 참조하세요.

맞춤 페이지 크기

ExpertPdf는 포인트를 사용합니다. IronPDF는 밀리미터를 사용합니다. 변환: points / 72 * 25.4 = mm

마이그레이션 후 점검 목록

코드 마이그레이션을 완료한 후, 다음을 확인하십시오:

  • 생성된 PDF의 시각적 비교
  • 헤더/푸터 및 페이지 번호 확인
  • 보안/암호화 설정 테스트
  • 병합 작업 확인
  • 사용자 정의 페이지 크기 확인
  • 성능 벤치마킹
  • 크로스 플랫폼 테스트 -ExpertPdf라이센스 파일 제거
  • 문서 업데이트

추가 리소스


ExpertPdf에서 IronPDF로의 마이그레이션은 희박한 문서화, 유산 렌더링 파이프라인 및 단편화된 제품 라이센싱을 최신 Chromium 엔진에서 적극 유지 관리되는 라이브러리로 대체하여 PDF 생성을 현재 웹 표준 및 현대적인 .NET 대상으로 맞춥니다.

참고해 주세요ExpertPDF는 그 소유자의 등록 상표입니다 (Outside Software Inc.)) 이 사이트는 Outside Software Inc.와 관련이 없으며, 그들의 지지나 승인이나 후원을 받지 않았습니다. 모든 제품 이름, 로고 및 브랜드는 각각의 소유자의 재산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

Curtis Chau
기술 문서 작성자

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

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

아이언 서포트 팀

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