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문제들
-
희박한 문서화, 느린 속도: html-to-pdf.net에 참조 문서는 존재하지만 튜토리얼, 기능 기사 및 변경 기록 항목은 드뭅니다. v20.1(2025년 4월)의 릴리스 노트는 '버그 픽스 및 성능 향상'을 나열하며, 주요 헤드라인 기능은 없습니다.
-
오래된 렌더링 파이프라인: ExpertPdf는 Trident(IE) 엔진과 v12.2에서 추가된 'WebKit2' 엔진을 제공합니다; 현대적인 Chromium은 기본값이 아닙니다. CSS3 기능인 Flexbox, Grid 및 CSS 변수는 WebKit2 엔진에서 가장 잘 렌더링됩니다 — 대규모 부동산을 마이그레이션하기 전에 대상 HTML을 확인하십시오.
-
노화된 스택에 대한 프리미엄 가격: 공공 ComponentSource 목록은 역사적으로 HtmlToPdf 변환기를 대략 $550-$1,200로 보여주었습니다(벤더와 직접 확인하십시오 — expertpdf.net의 주문 페이지는 작성 시 접근 불가).
-
분리된 제품 세트: ExpertPdf는 별개의 패키지들을 판매합니다 —
ExpertPdf.HtmlToPdf.NetCore/ExpertPdfHtmlToPdf,ExpertPdf.MergePdf,ExpertPdf.PdfSecurity,ExpertPdf.SplitPdf,ExpertPdf.PdfToImage,ExpertPdf.PdfCreator— 각 패키지는 보통 별도로 라이선스가 제공됩니다. - 현대 .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 |
주요 마이그레이션 혜택
- 현대적 렌더링: 최신 Chromium 엔진을 사용한 픽셀-퍼펙트 출력
- 올인원 패키지: PDF 생성, 병합, 보안, 추출이 하나의 NuGet에 포함됨
- 활발한 개발: 매달 새로운 기능과 보안 패치가 포함된 업데이트
- 더 나은 문서화: 포괄적인 튜토리얼 및 예제
- 진정한 크로스 플랫폼: 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"
nuget.org에서 정확한 이름을 확인할 일반적인ExpertPdf패키지:
ExpertPdfHtmlToPdf(.NET Framework) /ExpertPdf.HtmlToPdf.NetCore(.NET Core / 5-9) — HTML to PDFExpertPdf.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
2단계: 네임스페이스 참조 업데이트
ExpertPdf 네임스페이스를 IronPDF로 교체하세요:
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
Imports IronPdf
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"
완전한 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
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
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
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
IronPDF의 RenderingOptions는 페이지 구성에 직접적인 속성 접근을 제공합니다. 더 많은 옵션을 보려면 URL to PDF 문서를 참조하세요.
페이지 번호가 있는 헤더 및 푸터
이 예제는 헤더/푸터 구성의 중요한 차이를 보여줍니다—ExpertPdf는 &P; 토큰과 함께 PdfHeaderOptions 및 PdfFooterOptions 클래스를 별도로 사용하지만, 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
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
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"
페이지 번호 토큰 변환
ExpertPdf 토큰을IronPDF플레이스홀더로 교체하세요:
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
분산된 패키지 통합
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")
더 많은 병합 옵션을 보려면 PDF 병합 문서를 참조하세요.
맞춤 페이지 크기
ExpertPdf는 포인트를 사용합니다. IronPDF는 밀리미터를 사용합니다. 변환: points / 72 * 25.4 = mm
마이그레이션 후 점검 목록
코드 마이그레이션을 완료한 후, 다음을 확인하십시오:
- 생성된 PDF의 시각적 비교
- 헤더/푸터 및 페이지 번호 확인
- 보안/암호화 설정 테스트
- 병합 작업 확인
- 사용자 정의 페이지 크기 확인
- 성능 벤치마킹
- 크로스 플랫폼 테스트 -ExpertPdf라이센스 파일 제거
- 문서 업데이트
추가 리소스
ExpertPdf에서 IronPDF로의 마이그레이션은 희박한 문서화, 유산 렌더링 파이프라인 및 단편화된 제품 라이센싱을 최신 Chromium 엔진에서 적극 유지 관리되는 라이브러리로 대체하여 PDF 생성을 현재 웹 표준 및 현대적인 .NET 대상으로 맞춥니다.

