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

C#에서 EO.Pdf에서 IronPDF로 마이그레이션하는 방법

EO.Pdf는 여러 아키텍처적 문제를 제시하여 개발 팀이 대안을 평가하도록 만듭니다. 이러한 문제를 이해하는 것은 마이그레이션 전략을 계획하는 데 필수적입니다.

EO.Pdf 문제들

  1. 번들화된 Chromium 설치 영가: EO.Pdf(현재 NuGet 버전 26.1.34, 2026년 3월)는 자체 Chromium 기반 렌더러를 제공하여 비-Chromium 라이브러리에 비해 설치 크기를 증가시키고 Docker 이미지 및 CI/CD 파이프라인에 무게를 더합니다.

  2. 레거시 아키텍처 장비: EO.Pdf의 HTML-to-PDF 변환기는 원래 임베디드 Internet Explorer / Trident 엔진 기반으로 구축된 후 프로젝트가 Chromium 기반 렌더러로 이전되었습니다. 이전으로 인해 버전 간 일부 API 특이점 및 동작 차이가 발생했습니다.

  3. .NET Core에서 Windows 전용: Essential Objects의 .NET Core 문서에 따르면 EO.Pdf는 .NET Core 3.1+ 및 .NET 5/6을 Windows에서만 지원하며, Linux 및 macOS는 공식적으로 지원되지 않습니다.

  4. 정적 글로벌 옵션: EO.Pdf의 주요 HTML-to-PDF 진입점은 공유된 HtmlToPdf.Options가 있는 정적 HtmlToPdf 클래스입니다. 여러 스레드에서 이 전역 상태를 변경하는 것은 안전하지 않으며, 다중 테넌트 웹 애플리케이션에서 비현실적입니다.

  5. 유료 상업 라이선스: EO.Pdf는 단일, 3-라이선스 번들, 기업 및 기업 플러스 계층(영구적인 무료 계층 없음 - 30일 워터마크 체험판만 제공됨)으로 판매됩니다. 정확한 가격은 주문 페이지에 있습니다.

아키텍처 비교

측면 EO.Pdf IronPDF
렌더러 번들화된 Chromium (IE/Trident에서 전환됨) 내장된 Chromium
유산 문제 IE/Trident 마이그레이션 짐 시작부터 Chromium 기반
플랫폼 지원 .NET Core에서 Windows 전용 Windows, Linux, macOS, Docker, Azure
구성 정적 HtmlToPdf.Options (스레드 안전성 없음) 인스턴스 기반 ChromePdfRenderer (스레드 안전성 있음)
API 설계 혼합 (HtmlToPdf 정적 + ACM 객체 모델) 통합된 ChromePdfRenderer + HTML/CSS
라이선스 모델 단일/3-라이선스/기업/기업 플러스 (30일 체험) 개발자별 상업용; 무료 개발자 체험
최신 .NET .NET Framework + .NET Core 3.1+ (Windows only) .NET Framework, .NET 6/7/8/9 크로스 플랫폼
비동기 지원 제한적 전체 RenderHtmlAsPdfAsync / RenderUrlAsPdfAsync

주요 마이그레이션 혜택

  1. .NET Core / .NET 6+에서 크로스 플랫폼: Linux, macOS 및 Docker에서 작동 - Windows만 작동하지 않음
  2. 스레드 안전한 구성: 정적 전역 대신 인스턴스 기반 렌더러 옵션
  3. 현대적 API: 일관된 메서드 이름 — RenderHtmlAsPdf, RenderUrlAsPdf, PdfDocument.Merge
  4. 전체 비동기 지원: RenderHtmlAsPdfAsyncRenderUrlAsPdfAsync을 통한 비차단 파이프라인
  5. 문서화: 광범위한 튜토리얼, 준비방법 가이드 및 활발한 객체 참조

이전 준비

필수 조건

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

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

EO.Pdf 사용 감사

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

# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
SHELL

찾아볼 일반적인 EO.Pdf 네임스페이스:

  • EO.Pdf - 핵심 HTML to PDF
  • EO.Pdf.Acm - 고급 콘텐츠 모델 (ACM)
  • EO.Pdf.Contents - 저수준 콘텐츠 조작
  • EO.Pdf.Drawing - 그래픽 작업

핵심 패턴 변경 이해하기

EO.Pdf와IronPDF간의 가장 중요한 아키텍처적 차이는 구성 범위입니다. EO.Pdf는 글로벌 옵션과 정적 메서드를 사용하여 모든 변환에 영향을 주며, 이는 웹 애플리케이션에서 스레드 안전성 문제를 야기하는 패턴입니다. IronPDF는 인스턴스 기반 렌더러를 사용하여 각 변환이 분리되도록 로컬 옵션을 제공합니다.

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

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

EO.Pdf 제거 후IronPDF설치:

# Remove EO.Pdf
dotnet remove package EO.Pdf

# Install IronPDF
dotnet add package IronPdf
# Remove EO.Pdf
dotnet remove package EO.Pdf

# Install IronPDF
dotnet add package IronPdf
SHELL

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

EO.Pdf 네임스페이스를 IronPDF로 교체:

// Remove these
using EO.Pdf;
using EO.Pdf.Acm;

// Add this
using IronPdf;
// Remove these
using EO.Pdf;
using EO.Pdf.Acm;

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

3단계: 라이선스 구성

// 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 마이그레이션 참조

핵심 클래스 매핑

EO.Pdf 클래스 IronPDF 동등
HtmlToPdf ChromePdfRenderer
PdfDocument PdfDocument
HtmlToPdfOptions ChromePdfRenderOptions
AcmRender 필요 없음
AcmText HTML <span>, <p>
AcmBlock HTML

메서드 매핑

EO.Pdf 메소드 IronPDF 메소드
HtmlToPdf.ConvertHtml(html, path) renderer.RenderHtmlAsPdf(html) 다음 SaveAs(path)
HtmlToPdf.ConvertUrl(url, path) renderer.RenderUrlAsPdf(url) 다음 SaveAs(path)
PdfDocument.Save(path) pdf.SaveAs(path)
new PdfDocument(path) PdfDocument.FromFile(path)
PdfDocument.Merge(doc1, doc2) (정적) PdfDocument.Merge(doc1, doc2) (정적)

옵션 매핑

EO.Pdf 옵션 IronPDF RenderingOptions
Options.PageSize = PdfPageSizes.A4 PaperSize = PdfPaperSize.A4
Options.OutputArea (RectangleF) MarginTop, MarginBottom 등.

코드 마이그레이션 예제

HTML을 PDF로 변환

기본 HTML to PDF 변환은 정적 메서드에서 인스턴스 기반 렌더링으로의 전환을 보여줍니다.

EO.Pdf 구현:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

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

        HtmlToPdf.ConvertHtml(html, "output.pdf");

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

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

        HtmlToPdf.ConvertHtml(html, "output.pdf");

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

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

        HtmlToPdf.ConvertHtml(html, "output.pdf")

        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()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

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

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

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

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

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

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")

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

IronPDF의 이단계 패턴(렌더링 후 저장)은 저장하기 전에 추가 조작을 위한 PdfDocument 객체에 대한 접근을 제공합니다. 더 많은 옵션을 보려면 HTML to PDF 문서를 참조하세요.

URL을 PDF로 변환

EO.Pdf 구현:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        HtmlToPdf.ConvertUrl(url, "webpage.pdf");

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

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        HtmlToPdf.ConvertUrl(url, "webpage.pdf");

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

Module Program
    Sub Main()
        Dim url As String = "https://www.example.com"

        HtmlToPdf.ConvertUrl(url, "webpage.pdf")

        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()
    {
        string url = "https://www.example.com";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");

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

class Program
{
    static void Main()
    {
        string url = "https://www.example.com";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");

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

Class Program
    Shared Sub Main()
        Dim url As String = "https://www.example.com"

        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf(url)
        pdf.SaveAs("webpage.pdf")

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

IronPDF의 RenderUrlAsPdf은 완전한 JavaScript 실행과 현대적인 CSS 지원을 제공합니다. 더 많은 옵션을 보려면 URL to PDF 문서를 참조하세요.

사용자 정의 설정을 사용한 HTML 파일

이 예제는 EO.Pdf의 OutputArea와 인치 단위로 IronPDF의 개별 여백 속성을 밀리미터 단위로 갖는 구성 패턴의 중요한 차이를 보여줍니다.

EO.Pdf 구현:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfOptions options = new HtmlToPdfOptions();
        options.PageSize = PdfPageSizes.A4;
        options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

        HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
        Console.WriteLine("PDF with custom settings created.");
    }
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfOptions options = new HtmlToPdfOptions();
        options.PageSize = PdfPageSizes.A4;
        options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

        HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
        Console.WriteLine("PDF with custom settings created.");
    }
}
Imports EO.Pdf
Imports System

Class Program
    Shared Sub Main()
        Dim options As New HtmlToPdfOptions()
        options.PageSize = PdfPageSizes.A4
        options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)

        HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options)
        Console.WriteLine("PDF with custom settings created.")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 구현:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF with custom settings created.");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF with custom settings created.");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.MarginLeft = 20
        renderer.RenderingOptions.MarginRight = 20

        Dim pdf = renderer.RenderHtmlFileAsPdf("C:/input.html")
        pdf.SaveAs("output.pdf")
        Console.WriteLine("PDF with custom settings created.")
    End Sub
End Class
$vbLabelText   $csharpLabel

단위 변환에 유의하세요: EO.Pdf는 OutputArea에서 인치를 사용하고, IronPDF는 밀리미터를 사용합니다. 변환에 사용: inches × 25.4 = mm. 더 많은 옵션은 렌더링 옵션 문서를 참조하세요.

여러 PDF 병합

두 라이브러리는 문서 결합을 위한 정적 PdfDocument.Merge을 노출합니다 — EO.Pdf는 인스턴스 Append 메서드를 가지지 않으므로, doc.Append(other)을 사용하는 코드는 유효하지 않으며 Merge로 옮겨져야 합니다.

EO.Pdf 구현:

// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        PdfDocument doc1 = new PdfDocument("file1.pdf");
        PdfDocument doc2 = new PdfDocument("file2.pdf");

        // EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
        PdfDocument mergedDoc = PdfDocument.Merge(doc1, doc2);

        mergedDoc.Save("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;

class Program
{
    static void Main()
    {
        PdfDocument doc1 = new PdfDocument("file1.pdf");
        PdfDocument doc2 = new PdfDocument("file2.pdf");

        // EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
        PdfDocument mergedDoc = PdfDocument.Merge(doc1, doc2);

        mergedDoc.Save("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
Imports EO.Pdf
Imports System

Module Program
    Sub Main()
        Dim doc1 As New PdfDocument("file1.pdf")
        Dim doc2 As New PdfDocument("file2.pdf")

        ' EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
        Dim mergedDoc As PdfDocument = PdfDocument.Merge(doc1, doc2)

        mergedDoc.Save("merged.pdf")

        Console.WriteLine("PDFs merged successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF 구현:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully!");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdf1 = PdfDocument.FromFile("file1.pdf")
        Dim pdf2 = PdfDocument.FromFile("file2.pdf")

        Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
        merged.SaveAs("merged.pdf")

        Console.WriteLine("PDFs merged successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF의 정적 Merge은 문서의 매개변수 목록이나 List를 수용합니다. 생성자(new PdfDocument(path))에서 정적 팩토리(PdfDocument.FromFile(path))로의 변경에 유의하세요. 더 많은 옵션은 PDF 병합 문서를 참조하십시오.

중요한 마이그레이션 노트

마진 단위 변환

EO.Pdf는 OutputArea에서 인치를 사용합니다. IronPDF는 밀리미터를 사용합니다. 변환에 사용: inches × 25.4 = mm

// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);

//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
' EO.Pdf - 0.5 inch margins
options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)

' IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7
renderer.RenderingOptions.MarginBottom = 12.7
renderer.RenderingOptions.MarginLeft = 12.7
renderer.RenderingOptions.MarginRight = 12.7
$vbLabelText   $csharpLabel

정적에서 인스턴스 기반 구성으로

모든 HtmlToPdf.Options.X을(를) renderer.RenderingOptions.X으로 대체하세요:

// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;

//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;

//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4

' IronPDF- instance options (thread-safe)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
$vbLabelText   $csharpLabel

ACM에서 HTML로의 마이그레이션

EO.Pdf의 고급 콘텐츠 모델(AcmRender, AcmText, AcmBlock)을 사용하는 경우, 표준 HTML/CSS로 마이그레이션하세요:

// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));

//IronPDF HTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));

//IronPDF HTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
' EO.Pdf ACM approach
Dim acmContent As New AcmContent()
acmContent.Add(New AcmText("Sample Text"))

' IronPDF HTML approach
Dim html As String = "<div>Sample Text</div>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

두 단계 저장 패턴

EO.Pdf는 ConvertHtml()에 직접 저장합니다. IronPDF는 PdfDocument 객체를 반환하며, 그 후 SaveAs()을 호출합니다:

// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");

//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");

//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
' EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf")

' IronPDF- two steps (enables manipulation before save)
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

생성자에서 정적 팩토리로

모든 new PdfDocument(path)을(를) PdfDocument.FromFile(path)으로 대체하세요:

// EO.Pdf
var doc = new PdfDocument("file.pdf");

// IronPDF
var doc = PdfDocument.FromFile("file.pdf");
// EO.Pdf
var doc = new PdfDocument("file.pdf");

// IronPDF
var doc = PdfDocument.FromFile("file.pdf");
' EO.Pdf
Dim doc = New PdfDocument("file.pdf")

' IronPDF
Dim doc = PdfDocument.FromFile("file.pdf")
$vbLabelText   $csharpLabel

마이그레이션 후 점검 목록

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

  • 생성된 PDF의 시각적 비교
  • 헤더/풋터가 올바르게 렌더링되는지 확인
  • 보안/암호화 설정 테스트
  • 병합 작업 확인
  • 성능 벤치마킹
  • 크로스 플랫폼 테스트 (Windows, Linux, macOS)
  • EO.Pdf 라이선스 파일 제거
  • 문서 업데이트

추가 리소스


EO.Pdf에서 IronPDF로의 마이그레이션은 레거시 IE/Trident 시대의 짐과 EO.Pdf의 정적 전역 옵션의 스레드 안전 문제를 해결합니다. 인스턴스 기반 구성을 위한 전환은 PDF 생성 코드가 동시로드 조건에서 안정적으로 작동하도록 하며, IronPDF의 크로스 플랫폼 지원은 Windows를 넘어 Linux, macOS 및 Docker로 배포를 확장합니다.

참고해 주세요EO.Pdf 및 Essential Objects는 각각의 소유자의 상표입니다. 이 사이트는 Essential Objects와 관련이 없으며, 그들로부터 승인받지 않았으며, 그들로부터 후원을 받지 않았습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

Curtis Chau
기술 문서 작성자

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

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

아이언 서포트 팀

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