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

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

ExpertPdf는 수년간 개발자를 위해 서비스해온 상업용 HTML-to-PDF 변환기입니다. 그러나 ExpertPdf는 오늘날 빠르게 변화하는 개발 환경에서 상당한 도전에 직면하고 있습니다: 2018년 이후 업데이트되지 않은 문서, 최신 CSS3 기능이 없는 이전 Chrome 버전에 의존, 구식 기술에 대해 $550-$1,200의 프리미엄 요금, 병합, 보안, 분할에 대한 별도의 라이선스가 필요한 분절된 제품 Suite. 이 포괄적인 가이드는 최신 Chromium 렌더링, 월별 업데이트 및 올인원 패키지 아키텍처를 갖춘 현대 .NET PDF 라이브러리인 IronPDF로의 단계별 마이그레이션 경로를 제공합니다.

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

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

ExpertPdf문제들

  1. 2018년 이후 업데이트되지 않은 문서: ExpertPdf의 문서는 6년 이상 동안 업데이트되지 않았습니다. .NET 생태계가 진화함에 따라 현재 정보, 예제 및 모범 사례를 찾는 것이 점점 어려워지고 있습니다.

  2. 이전 Chrome 버전: ExpertPdf는 렌더링에 이전 버전의 Chrome을 사용합니다. 최신 CSS3 기능 (Flexbox, Grid, CSS Variables)이 올바르게 렌더링되지 않을 수 있으며, 보안 패치는 적용되지 않습니다.

  3. 유산 기술에 대한 프리미엄 요금: $550-$1,200의 라이선스 비용에도 불구하고 ExpertPdf는 구식 랜더링 기술을 제공합니다.

  4. 분절된 제품 Suite: ExpertPdf는 HtmlToPdf 변환기, PDF 병합기, PDF 보안, PDF 분할기, PDF to Image와 같은 기능을 위한 별도 패키지를 판매하며 각각 별도의 라이센스가 필요합니다.

  5. 제한된 현대 .NET 지원: ExpertPdf는 .NET Core 패키지를 가지고 있지만, 현대 .NET 버전 및 관행에 뒤떨어진다.

아키텍처 비교

측면 ExpertPdf IronPDF
문서화 2018년 이후로 동결 지속적으로 업데이트됨
렌더링 엔진 레거시 Chrome 최신 Chromium
CSS 지원 제한된 CSS3 전체 CSS3 (Flexbox, Grid)
가격 $550-$1,200 경쟁력 있는 가격
업데이트 빈도 드문드문함 월별 릴리스
제품 모델 조각화된 (5+ DLLs) 모든 기능 통합된 라이브러리
최신 .NET 제한적 .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

일반적인ExpertPdf패키지를 찾으세요:

  • ExpertPdf.HtmlToPdf - HTML에서 PDF로 변환
  • ExpertPdf.PDFMerge - PDF 병합
  • ExpertPdf.PDFSecurity - 암호화 및 비밀번호
  • ExpertPdf.PDFSplit - PDF 분할
  • ExpertPdf.PdfToImage - PDF에서 이미지로 변환

핵심 패턴 변경 이해하기

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

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

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

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

# Remove allExpertPdfpackages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage

# InstallIronPDF(includes all features)
dotnet add package IronPdf
# Remove allExpertPdfpackages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage

# InstallIronPDF(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는 TextHeaderFooter{total-pages} 플레이스홀더와 함께 사용합니다.

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, CenterTextRightText 속성을 제공합니다. HTML 기반 헤더의 경우 HtmlHeaderFooter을 사용하십시오. 더 많은 옵션은 헤더 및 푸터 문서를 참조하세요.

중요한 마이그레이션 노트

라이센스 키 위치

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

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

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

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

'IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE"
$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 PDFMerge package
var 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 PDFMerge package
var 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 PDFMerge 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 As PdfDocument = PdfDocument.FromFile("file1.pdf")
Dim pdf2 As PdfDocument = PdfDocument.FromFile("file2.pdf")
Dim merged As PdfDocument = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

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

맞춤 페이지 크기

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

마이그레이션 후 점검 목록

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

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

PDF 인프라의 미래 대비

.NET 10이 다가오고 C# 14가 새로운 언어 기능을 도입함에 따라 활성 개발과 현대적 렌더링을 지원하는 PDF 라이브러리를 선택하는 것은 장기적인 호환성을 보장합니다. IronPDF의 매월 업데이트와 최신 Chromium 엔진은 프로젝트가 2025년과 2026년으로 확장됨에 따라 CSS3 레이아웃(Flexbox, Grid)과 함께 계속 올바르게 작동할 PDF 생성의 기초를 제공합니다. ExpertPdf의 구식 Chrome 버전과는 다릅니다.

추가 리소스


ExpertPdf에서 IronPDF로의 전환은 고정된 문서, 구식 Chrome 렌더링, 조각화된 제품 라이선싱, 제한된 현대적 .NET 지원의 문제를 없앱니다. 최신 Chromium 엔진을 사용하는 활발히 유지 보수되는 라이브러리로의 전환은 PDF 생성을 진화하는 웹 표준과 .NET Framework와 동기화되게 합니다.

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

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

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

아이언 서포트 팀

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