C#에서 EO.Pdf에서 IronPDF로 마이그레이션하는 방법
EO.Pdf는 여러 아키텍처적 문제를 제시하여 개발 팀이 대안을 평가하도록 만듭니다. 이러한 문제를 이해하는 것은 마이그레이션 전략을 계획하는 데 필수적입니다.
EO.Pdf 문제들
-
번들화된 Chromium 설치 영가: EO.Pdf(현재 NuGet 버전 26.1.34, 2026년 3월)는 자체 Chromium 기반 렌더러를 제공하여 비-Chromium 라이브러리에 비해 설치 크기를 증가시키고 Docker 이미지 및 CI/CD 파이프라인에 무게를 더합니다.
-
레거시 아키텍처 장비: EO.Pdf의 HTML-to-PDF 변환기는 원래 임베디드 Internet Explorer / Trident 엔진 기반으로 구축된 후 프로젝트가 Chromium 기반 렌더러로 이전되었습니다. 이전으로 인해 버전 간 일부 API 특이점 및 동작 차이가 발생했습니다.
-
.NET Core에서 Windows 전용: Essential Objects의 .NET Core 문서에 따르면 EO.Pdf는 .NET Core 3.1+ 및 .NET 5/6을 Windows에서만 지원하며, Linux 및 macOS는 공식적으로 지원되지 않습니다.
-
정적 글로벌 옵션: EO.Pdf의 주요 HTML-to-PDF 진입점은 공유된
HtmlToPdf.Options가 있는 정적HtmlToPdf클래스입니다. 여러 스레드에서 이 전역 상태를 변경하는 것은 안전하지 않으며, 다중 테넌트 웹 애플리케이션에서 비현실적입니다. - 유료 상업 라이선스: 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 |
주요 마이그레이션 혜택
- .NET Core / .NET 6+에서 크로스 플랫폼: Linux, macOS 및 Docker에서 작동 - Windows만 작동하지 않음
- 스레드 안전한 구성: 정적 전역 대신 인스턴스 기반 렌더러 옵션
- 현대적 API: 일관된 메서드 이름 —
RenderHtmlAsPdf,RenderUrlAsPdf,PdfDocument.Merge - 전체 비동기 지원:
RenderHtmlAsPdfAsync과RenderUrlAsPdfAsync을 통한 비차단 파이프라인 - 문서화: 광범위한 튜토리얼, 준비방법 가이드 및 활발한 객체 참조
이전 준비
필수 조건
환경이 다음 요구 사항을 충족하는지 확인하세요:
- .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"
찾아볼 일반적인 EO.Pdf 네임스페이스:
EO.Pdf- 핵심 HTML to PDFEO.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
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
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"
완전한 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
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
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
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
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
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
단위 변환에 유의하세요: 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
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
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
정적에서 인스턴스 기반 구성으로
모든 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
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)
두 단계 저장 패턴
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")
생성자에서 정적 팩토리로
모든 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")
마이그레이션 후 점검 목록
코드 마이그레이션을 완료한 후, 다음을 확인하십시오:
- 생성된 PDF의 시각적 비교
- 헤더/풋터가 올바르게 렌더링되는지 확인
- 보안/암호화 설정 테스트
- 병합 작업 확인
- 성능 벤치마킹
- 크로스 플랫폼 테스트 (Windows, Linux, macOS)
- EO.Pdf 라이선스 파일 제거
- 문서 업데이트
추가 리소스
EO.Pdf에서 IronPDF로의 마이그레이션은 레거시 IE/Trident 시대의 짐과 EO.Pdf의 정적 전역 옵션의 스레드 안전 문제를 해결합니다. 인스턴스 기반 구성을 위한 전환은 PDF 생성 코드가 동시로드 조건에서 안정적으로 작동하도록 하며, IronPDF의 크로스 플랫폼 지원은 Windows를 넘어 Linux, macOS 및 Docker로 배포를 확장합니다.

