PDFView4NET에서 IronPDF로의 마이그레이션 방법 (C#)
PDFView4NET에서 IronPDF로 마이그레이션하면 PDF 워크플로가 UI 중심의 뷰잉 컴포넌트에서 포괄적인 PDF 생성 및 조작 라이브러리로 변환됩니다. 이 가이드는 서버 측 처리, 웹 애플리케이션 지원 및 PDFView4NET이 제공할 수 없는 전체 PDF 라이프사이클 관리 기능을 사용할 수 있는 단계별 마이그레이션 경로를 제공합니다.
왜 PDFView4NET에서 IronPDF로 마이그레이션해야 하는지
PDFView4NET이해하기
PDFView4NET는 주로 C#에서 PDF 뷰잉 기능에 중점을 둔 개발자들에게 인기 있는 선택입니다. PDFView4NET는 Windows Forms (WinForms) 및 Windows Presentation Foundation (WPF) 애플리케이션을 대상으로 하는 강력한 PDF 뷰잉 제어 기능을 제공합니다. 이 라이브러리는 매끄러운 PDF 뷰잉 경험을 제공하는 데 초점을 맞추어 데스크톱 애플리케이션 개발을 위한 중요한 옵션입니다.
강점에도 불구하고 PDFView4NET는IronPDF같은 더 포괄적인 라이브러리를 탐색하도록 개발자들을 유도할 수 있는 제한이 있습니다. IronPDF는 특정 UI 컴포넌트에 구속받지 않고 생성, 보기 및 조작 기능을 포함하는 올인원 PDF 솔루션을 제공합니다.
뷰어 전용 제한
PDFView4NET는 주로WinForms및WPF애플리케이션의 UI 뷰잉 컴포넌트입니다. 다른 기능이 아니라 PDF를 표시하는 데 중점을 둡니다. 마이그레이션해야 하는 주요 이유:
-
뷰어 전용 제한: PDFView4NET는 보기 용도로 설계되었지, PDF 생성용이 아닙니다.
-
UI 프레임워크 종속성:WinForms또는WPF컨텍스트가 필요합니다.WinForms또는WPF환경이 PDFView4NET가 지원하지 않는 콘솔 애플리케이션이나 웹 서비스 같은 다른 컨텍스트에서의 사용을 제한할 수 있습니다.
-
HTML to PDF 불가: HTML 또는 URL을 PDF로 변환할 수 없습니다. 이 라이브러리는 엄격히 보기 용도로만 초점을 맞추고 있으며, PDF 파일을 생성하거나 조작하기 위한 내장 기능이 없습니다.
-
제한된 조작: IronPDF의 전체 기능 세트에 비해 기본 편집만 가능합니다.
-
서버 측 지원 없음: 웹 서비스나AzureFunctions에서 실행할 수 없습니다.
- 레거시 기술: 적극적인 개발과 최신 기능 업데이트가 부족합니다.
PDFView4NET대IronPDF비교
| 기능 | PDFView4NET | IronPDF |
|---|---|---|
| 주요 초점 | PDF 보기 | 완전한 PDF 솔루션 (생성, 보기, 편집) |
| 필요한 UI 프레임워크 | WinForms, WPF | 없음 |
| PDF 생성 | 아니요 | 예 |
| PDF 조작 | 제한적 지원 (주석) | 예 |
| 서버-사이드 | 지원되지 않음 | 풀 서포트 |
| 웹 애플리케이션 | 아니요 | 예 |
| 콘솔 앱 | 제한적 | 풀 서포트 |
| Azure/Docker | 아니요 | 예 |
| HTML to PDF | 아니요 | 예 |
| 크로스-플랫폼 컨텍스트 | 아니요 | 예 |
| 통합 용이성 | 중간 | 높음 |
IronPDF는 다재다능성과 포괄적인 기능 세트로 차별화되어 있어, C#에서 PDF 처리에 대한 전체적인 접근이 필요한 개발자들에게 특히 매력적입니다. 이 라이브러리는 PDF 생성, 보기, 편집 등을 지원하며, PDFView4NET의 보기 기능을 훨씬 뛰어넘는 사용 사례를 해결합니다.
2025년과 2026년 동안 .NET 10 및 C# 14 채택을 계획하는 팀은 컨텍스트 독립성을 제공하는 IronPDF를 통해 웹 애플리케이션, 서비스 및 콘솔 애플리케이션을 포함한 다양한 컨텍스트에서 사용할 수 있습니다. 이러한 유연성은 크로스 플랫폼 지원 및 다양한 배포 시나리오가 필요한 프로젝트에 중요합니다.
시작하기 전에
필수 조건
- .NET 환경: .NET Framework 4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
- IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요
NuGet 패키지 변경 사항
<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />
<PackageReference Include="IronPdf" Version="2024.*" />
<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />
<PackageReference Include="IronPdf" Version="2024.*" />
또는 CLI를 통해:
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
라이선스 구성
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
완전한 API 참조
네임스페이스 변경
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;
// After: IronPDF
using IronPdf;
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;
// After: IronPDF
using IronPdf;
Imports IronPdf
핵심 API 매핑
| PDFView4NET | IronPDF |
|---|---|
PDFFile.Open(path) |
PdfDocument.FromFile(path) |
PDFFile.Open(stream) |
PdfDocument.FromStream(stream) |
pdfFile.GetPage(index) |
pdf.Pages[index] |
pdfFile.PageCount |
pdf.PageCount |
PDFPrintDocument |
pdf.Print() |
pdfFile.Close() |
pdf.Dispose() |
HtmlToPdfConverter |
ChromePdfRenderer |
| 해당 없음 | PdfDocument.Merge() |
| 해당 없음 | pdf.ApplyWatermark() |
| 해당 없음 | pdf.SecuritySettings |
코드 마이그레이션 예제
예제 1:URL을 PDF로 변환변환
이전 (PDFView4NET):
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.NavigateUri = new Uri("https://example.com");
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
}
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.NavigateUri = new Uri("https://example.com");
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
}
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.NavigateUri = New Uri("https://example.com")
converter.ConvertHtmlToPdf()
converter.SavePdf("output.pdf")
End Sub
End Class
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("output.pdf")
End Sub
End Class
PDFView4NET는 HtmlToPdfConverter를 사용하며 NavigateUri 속성을 Uri 객체로 설정한 후 ConvertHtmlToPdf()을 호출하고 SavePdf()을 호출합니다. IronPDF는 이를 단일 ChromePdfRenderer로 단순화하여, 문자열 URL을 직접 받아들이고 RenderUrlAsPdf() 과 함께 PdfDocument을 반환하여 SaveAs()로 저장합니다. IronPDF의 접근법은 현대 .NET 애플리케이션과의 더 나은 통합과 더 나은 문법을 제공합니다. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요.
예제 2: HTML 문자열을 PDF로 변환
이전 (PDFView4NET):
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.HtmlContent = htmlContent;
converter.ConvertHtmlToPdf();
converter.SavePdf("document.pdf");
}
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.HtmlContent = htmlContent;
converter.ConvertHtmlToPdf();
converter.SavePdf("document.pdf");
}
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim converter As New HtmlToPdfConverter()
converter.HtmlContent = htmlContent
converter.ConvertHtmlToPdf()
converter.SavePdf("document.pdf")
End Sub
End Class
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("document.pdf")
End Sub
End Class
PDFView4NET는 HTML 문자열을 설정하기 위해 HtmlContent 속성을 사용한 후 ConvertHtmlToPdf() 및 SavePdf()을 호출해야 합니다. IronPDF는 RenderHtmlAsPdf()이 HTML 문자열을 직접 받아들이고 PdfDocument을 반환하는 보다 유창한 API를 제공합니다. 메서드 이름이 더 직관적입니다: RenderHtmlAsPdf 대 ConvertHtmlToPdf. 더 많은 정보를 보려면 튜토리얼을 참조하세요.
예제 3: PDF에서 텍스트 추출
이전 (PDFView4NET):
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;
class Program
{
static void Main()
{
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
string text = "";
for (int i = 0; i < document.Pages.Count; i++)
{
text += document.Pages[i].ExtractText();
}
Console.WriteLine(text);
}
}
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;
class Program
{
static void Main()
{
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
string text = "";
for (int i = 0; i < document.Pages.Count; i++)
{
text += document.Pages[i].ExtractText();
}
Console.WriteLine(text);
}
}
}
Imports O2S.Components.PDFView4NET
Imports System
Imports System.IO
Class Program
Shared Sub Main()
Using fs As FileStream = File.OpenRead("document.pdf")
Dim document As New PDFDocument(fs)
Dim text As String = ""
For i As Integer = 0 To document.Pages.Count - 1
text &= document.Pages(i).ExtractText()
Next
Console.WriteLine(text)
End Using
End Sub
End Class
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
End Sub
End Class
이 예제는 중요한 API 차이를 강조합니다. PDFView4NET는 수동으로 FileStream를 생성하고 PDFDocument를 스트림과 함께 인스턴스화한 후 document.Pages.Count을 반복하며 각 페이지에 대해 Pages[i].ExtractText()를 연결해야 합니다.
IronPDF는 이를 극적으로 단순화합니다: PdfDocument.FromFile()는 경로에서 PDF를 직접 로드하고 ExtractAllText()은 한 번의 메서드 호출로 모든 페이지에서 텍스트를 추출합니다. 수동 스트림 관리, 루프, 문자열 연결 없음 - 단 두 줄의 코드.
중요한 마이그레이션 노트
변환기 클래스 변경
PDFView4NET는 HtmlToPdfConverter을 사용합니다; IronPDF는 ChromePdfRenderer을 사용합니다:
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFView4NET
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer = New ChromePdfRenderer()
속성 기반 대 메서드 기반 API
PDFView4NET는 변환 전에 속성을 설정합니다:
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
' PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent
converter.NavigateUri = New Uri(url)
converter.ConvertHtmlToPdf()
converter.SavePdf("output.pdf")
' IronPDF: Method parameters with fluent API
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("output.pdf")
문서 로딩 변경
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
}
// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
}
// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
Imports System.IO
Imports PDFView4NET
Imports IronPDF
' PDFView4NET: Requires FileStream
Using fs As FileStream = File.OpenRead("document.pdf")
Dim document As New PDFDocument(fs)
End Using
' IronPDF: Direct file path
Dim pdf = PdfDocument.FromFile("document.pdf")
페이지 접근 방식 변경
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
document.Pages[i].ExtractText();
}
// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
document.Pages[i].ExtractText();
}
// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
' PDFView4NET: document.Pages.Count and Pages(i)
For i As Integer = 0 To document.Pages.Count - 1
document.Pages(i).ExtractText()
Next
' IronPDF: pdf.PageCount and Pages(i) or ExtractAllText()
Dim text As String = pdf.ExtractAllText()
' Or per-page: pdf.ExtractTextFromPage(0)
저장 방법 변경
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
이동 후 새로운 기능
IronPDF로 마이그레이션 한 후 PDFView4NET가 제공할 수 없는 기능을 사용할 수 있습니다.
PDF 병합
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
HTML을 사용한 워터마크
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 72pt;
color: rgba(255, 0, 0, 0.2);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 72pt;
color: rgba(255, 0, 0, 0.2);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("
<div style='
font-size: 72pt;
color: rgba(255, 0, 0, 0.2);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>")
pdf.SaveAs("watermarked.pdf")
비밀번호 보호
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user456"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
양식 채우기
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.GetFieldByName("FirstName").Value = "John"
pdf.Form.GetFieldByName("LastName").Value = "Doe"
pdf.SaveAs("filled_form.pdf")
서버 측 처리
PDFView4NET은 서버 환경에서 실행할 수 없습니다. IronPDF는 여기에서 뛰어납니다:
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
<HttpGet>
Public Function GeneratePdf() As IActionResult
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(GetReportHtml())
Return File(pdf.BinaryData, "application/pdf", "report.pdf")
End Function
기능 비교 요약
| 기능 | PDFView4NET | IronPDF |
|---|---|---|
| PDF 보기 | 예 (UI) | 아니오 (뷰어 사용) |
| PDF 불러오기 | 예 | 예 |
| PDF 저장 | 제한적 | 예 |
| HTML to PDF | 아니요 | 예 |
| URL을 PDF로 변환 | 아니요 | 예 |
| PDF 병합 | 아니요 | 예 |
| PDF 분할 | 제한적 | 예 |
| 워터마크 | 아니요 | 예 |
| 헤더/푸터 | 아니요 | 예 |
| 비밀번호 보호 | 아니요 | 예 |
| 디지털 서명 | 아니요 | 예 |
| 텍스트 추출 | 제한적 | 예 |
| 양식 채우기 | 제한적 | 예 |
| WinForms | 예 | 예 |
| WPF | 예 | 예 |
| 콘솔 | 제한적 | 예 |
| ASP.NET | 아니요 | 예 |
| Azure | 아니요 | 예 |
| Docker | 아니요 | 예 |
마이그레이션 체크리스트
사전 마이그레이션
- 보기 요구 사항 식별 (IronPDF의 기능으로 UI 기반 PDF 보기를 대체할 수 있는지 확인)
- 문서 인쇄 워크플로우
- PDF 조작 필요 목록
- 필요한 경우 뷰어 대체 계획 (IronPDF는 생성/조작에 중점을 둠)
- ironpdf.com에서IronPDF라이선스 키 획득
패키지 변경 사항
O2S.Components.PDFView4NETNuGet 패키지 제거IronPdfNuGet Install-Package:dotnet add package IronPdf
코드 변경 사항
- 네임스페이스 import 업데이트 (
using O2S.Components.PDFView4NET;→using IronPdf;) HtmlToPdfConverter를ChromePdfRenderer로 교체converter.HtmlContent+ConvertHtmlToPdf()를renderer.RenderHtmlAsPdf(html)로 교체converter.NavigateUri+ConvertHtmlToPdf()를renderer.RenderUrlAsPdf(url)로 교체converter.SavePdf()를pdf.SaveAs()로 교체PDFDocument(stream)를PdfDocument.FromFile(path)로 교체- 수동 페이지 반복 추출을
pdf.ExtractAllText()로 교체 - 애플리케이션 시작 시 라이선스 초기화 추가
마이그레이션 이후
- PDF 로딩 및 저장 테스트
- 텍스트 추출 기능 확인
- HTML을 PDF로 변환 테스트
- 서버 배포 작동 확인 (새로운 기능)
- 필요 시 교차 플랫폼 테스트 (새로운 기능)
- 서버 전용인 경우 UI 특정 PDF 코드 제거

