C#에서 PdfiumViewer에서 IronPDF로 마이그레이션하는 방법
PdfiumViewer에서 IronPDF로 마이그레이션하면 네이티브 바이너리 종속성을 가진 Windows Forms의 뷰잉 전용 라이브러리에서 모든 .NET 응용 프로그램 유형에서 생성, 조작, 텍스트 추출 및 렌더링을 처리하는 포괄적인 PDF 솔루션으로 .NET PDF 워크플로가 이동합니다. 이 가이드는 PdfiumViewer가 제공할 수 없는 기능을 추가하면서 플랫폼 제한을 제거하는 완전한 단계별 마이그레이션 경로를 제공합니다.
PdfiumViewer에서 IronPDF로 마이그레이션해야 하는 이유
PdfiumViewer이해하기
PdfiumViewer는 Chrome 브라우저 내에서 사용되는 Google의 PDF 렌더링 엔진인 PDFium에 대한 .NET 래퍼입니다. 이는 PDF 뷰잉을 직접 Windows Forms 응용 프로그램에 통합하기 위한 간단하지만 강력한 솔루션을 제공하며 높은 성능과 높은 충실도의 PDF 렌더링 기능을 제공합니다.
그러나 PdfiumViewer는 단순한 뷰어에 지나지 않는다는 점을 기억하는 것이 중요합니다. PDF 생성, 편집 또는 조작을 지원하지 않으며, 이는 단순히 뷰어 기능 이상을 요구하는 응용 프로그램에 제한적일 수 있습니다. 또한 불확실한 유지보수 상태는 생산 응용 프로그램에 위험을 발생시킵니다. 그 지속적인 개발 및 유지보수에 일부 불확실성이 있어 장기 프로젝트에 대한 우려가 될 수 있습니다.
중요한 PdfiumViewer의 제약 사항
-
뷰잉 전용 기능: HTML, 이미지 또는 프로그래밍 방식으로 PDF를 생성할 수 없습니다. PdfiumViewer의 기능은 PDF 뷰잉에 국한되며, IronPDF와 같은 라이브러리와 달리 PDF 생성, 편집, 병합 또는 기타 조작 기능을 지원하지 않습니다.
-
Windows Forms 전용: 라이브러리는 Windows Forms 응용 프로그램에 중점을 두고 있으며, 다른 사용자 인터페이스 프레임워크를 지원하지 않습니다.
-
PDF 조작 불가: PDF 콘텐츠를 병합, 분할 또는 수정할 수 없습니다.
-
네이티브 바이너리 종속성: 플랫폼 전용 Pdfium 바이너리(x86 및 x64 pdfium.dll 파일)가 필요합니다.
-
유지보수 불확실성: 업데이트가 제한적이며 장기 지원이 불명확합니다.
-
텍스트 추출 불가: PdfiumViewer에는 내장된 텍스트 추출 기능이 없으며, OCR 또는 다른 라이브러리를 사용해야 합니다. 페이지를 이미지로만 렌더링할 수 있습니다.
-
HTML을 PDF로 변환 불가: PdfiumViewer는 주로 PDF 뷰어/렌더러일 뿐, 생성기가 아닙니다. HTML을 PDF로 직접 변환할 수 없습니다. wkhtmltopdf와 같은 라이브러리를 사용해야 합니다.
-
머리글/바닥글 없음: 페이지 번호 또는 반복되는 콘텐츠를 추가할 수 없습니다.
-
워터마크 없음: 문서에 오버레이를 찍을 수 없습니다.
- 보안 기능 없음: PDF를 암호화하거나 암호로 보호할 수 없습니다.
PdfiumViewer와IronPDF비교
| 측면 | PdfiumViewer | IronPDF |
|---|---|---|
| 주요 초점 | WinForms PDF 뷰어 | 완전한 PDF 솔루션 |
| 라이선스 | Apache 2.0 | 상업적 |
| PDF 생성 | ✗ | ✓(HTML, URL, 이미지) |
| PDF 조작 | ✗ | ✓(병합, 분할, 편집) |
| HTML to PDF | ✗ | ✓(Chromium 엔진) |
| 텍스트 추출 | ✗ | ✓ |
| 워터마크 | ✗ | ✓ |
| 헤더/푸터 | ✗ | ✓ |
| 보안 | ✗ | ✓ |
| 내장 뷰어 | ✓ | ✗ (백엔드 초점) |
| 플랫폼 지원 | Windows Forms 전용 | Console, Web, Desktop |
| 프레임워크 지원 | .NET Framework | .NET Framework, Core, 5+ |
| 유지보수 | 불확실 | 활성 |
2025년과 2026년까지 .NET 10 및 C# 14 도입을 계획하는 팀을 위해 IronPDF는 모든 .NET 응용 프로그램 유형에서 작동하는 포괄적이고 적극적으로 유지 관리되는 기초를 제공하여 Windows Forms 제한 및 네이티브 바이너리 복잡성을 제거합니다.
시작하기 전에
필수 조건
- .NET 환경:.NET Framework4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
- IronPDF 라이선스: ironpdf.com에서 라이선스 키를 획득하세요
NuGet 패키지 변경 사항
# RemovePdfiumViewerpackages
dotnet remove package PdfiumViewer
dotnet remove package PdfiumViewer.Native.x86.v8-xfa
dotnet remove package PdfiumViewer.Native.x64.v8-xfa
# Install IronPDF
dotnet add package IronPdf
# RemovePdfiumViewerpackages
dotnet remove package PdfiumViewer
dotnet remove package PdfiumViewer.Native.x86.v8-xfa
dotnet remove package PdfiumViewer.Native.x64.v8-xfa
# Install IronPDF
dotnet add package 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"
PdfiumViewer사용 식별
# FindPdfiumViewerusage
grep -r "PdfiumViewer\|PdfViewer\|PdfDocument\.Load" --include="*.cs" .
# Find native binary references
grep -r "pdfium\.dll\|Native\.x86\|Native\.x64" --include="*.csproj" .
# Find viewer control usage
grep -r "PdfViewer" --include="*.cs" --include="*.Designer.cs" .
# FindPdfiumViewerusage
grep -r "PdfiumViewer\|PdfViewer\|PdfDocument\.Load" --include="*.cs" .
# Find native binary references
grep -r "pdfium\.dll\|Native\.x86\|Native\.x64" --include="*.csproj" .
# Find viewer control usage
grep -r "PdfViewer" --include="*.cs" --include="*.Designer.cs" .
완전한 API 참조
네임스페이스 변경
// PdfiumViewer
using PdfiumViewer;
// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
// PdfiumViewer
using PdfiumViewer;
// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
Imports PdfiumViewer
Imports IronPdf
Imports IronPdf.Rendering
Imports IronPdf.Editing
핵심 클래스 매핑
| PdfiumViewer | IronPDF |
|---|---|
PdfDocument |
PdfDocument |
PdfViewer |
(동등한 항목 없음) |
PdfRenderer |
ChromePdfRenderer |
| (사용 불가) | HtmlHeaderFooter |
문서 로딩 매핑
| PdfiumViewer | IronPDF |
|---|---|
PdfDocument.Load(path) |
PdfDocument.FromFile(path) |
PdfDocument.Load(stream) |
PdfDocument.FromStream(stream) |
PdfDocument.Load(bytes) |
PdfDocument.FromBinaryData(bytes) |
문서 속성 매핑
| PdfiumViewer | IronPDF |
|---|---|
document.PageCount |
document.PageCount |
document.PageSizes |
document.Pages[i].Width/Height |
document.GetPageSize(index) |
document.Pages[index].Width/Height |
페이지 렌더링 매핑
| PdfiumViewer | IronPDF |
|---|---|
document.Render(pageIndex, dpiX, dpiY, forPrinting) |
pdf.ToBitmap(pageIndex) |
document.Render(pageIndex, width, height, dpiX, dpiY, flags) |
pdf.RasterizeToImageFiles(path, dpi) |
문서 저장 매핑
| PdfiumViewer | IronPDF |
|---|---|
document.Save(path) |
pdf.SaveAs(path) |
document.Save(stream) |
pdf.Stream |
| (사용 불가) | pdf.BinaryData |
PdfiumViewer에서 사용할 수 없는 새로운 기능
| IronPDF기능 | 설명 |
|---|---|
pdf.ExtractAllText() |
모든 페이지에서 텍스트 추출 |
pdf.ExtractTextFromPage(index) |
특정 페이지에서 텍스트 추출 |
ChromePdfRenderer.RenderHtmlAsPdf() |
HTML에서 생성 |
ChromePdfRenderer.RenderUrlAsPdf() |
URL에서 생성 |
PdfDocument.Merge() |
PDF 병합 |
pdf.CopyPages() |
페이지 추출 |
pdf.RemovePages() |
페이지 삭제 |
pdf.ApplyWatermark() |
워터마크 추가 |
pdf.AddHtmlHeaders() |
헤더 추가 |
pdf.AddHtmlFooters() |
푸터 추가 |
pdf.SecuritySettings |
암호 보호 |
pdf.Form |
양식 채우기 |
코드 마이그레이션 예제
예제 1: PDF에서 텍스트 추출
이전 (PdfiumViewer):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Text;
string pdfPath = "document.pdf";
// PDFiumViewer has limited text extraction capabilities
// It's primarily designed for rendering, not text extraction
using (var document = PdfDocument.Load(pdfPath))
{
int pageCount = document.PageCount;
Console.WriteLine($"Total pages: {pageCount}");
// PDFiumViewer does not have built-in text extraction
// You would need to use OCR or another library
// It can only render pages as images
for (int i = 0; i < pageCount; i++)
{
var pageImage = document.Render(i, 96, 96, false);
Console.WriteLine($"Rendered page {i + 1}");
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Text;
string pdfPath = "document.pdf";
// PDFiumViewer has limited text extraction capabilities
// It's primarily designed for rendering, not text extraction
using (var document = PdfDocument.Load(pdfPath))
{
int pageCount = document.PageCount;
Console.WriteLine($"Total pages: {pageCount}");
// PDFiumViewer does not have built-in text extraction
// You would need to use OCR or another library
// It can only render pages as images
for (int i = 0; i < pageCount; i++)
{
var pageImage = document.Render(i, 96, 96, false);
Console.WriteLine($"Rendered page {i + 1}");
}
}
Imports PdfiumViewer
Imports System
Imports System.Text
Dim pdfPath As String = "document.pdf"
' PDFiumViewer has limited text extraction capabilities
' It's primarily designed for rendering, not text extraction
Using document = PdfDocument.Load(pdfPath)
Dim pageCount As Integer = document.PageCount
Console.WriteLine($"Total pages: {pageCount}")
' PDFiumViewer does not have built-in text extraction
' You would need to use OCR or another library
' It can only render pages as images
For i As Integer = 0 To pageCount - 1
Dim pageImage = document.Render(i, 96, 96, False)
Console.WriteLine($"Rendered page {i + 1}")
Next
End Using
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string pdfPath = "document.pdf";
// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");
Console.WriteLine($"\nTotal pages: {pdf.PageCount}");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string pdfPath = "document.pdf";
// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");
Console.WriteLine($"\nTotal pages: {pdf.PageCount}");
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim pdfPath As String = "document.pdf"
' Open and extract text from PDF
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
' Extract text from all pages
Dim allText As String = pdf.ExtractAllText()
Console.WriteLine("Extracted Text:")
Console.WriteLine(allText)
' Extract text from specific page
Dim pageText As String = pdf.ExtractTextFromPage(0)
Console.WriteLine(vbCrLf & "First page text: " & pageText)
Console.WriteLine(vbCrLf & "Total pages: " & pdf.PageCount)
End Sub
End Module
이 예는 기본적인 기능 차이를 강조합니다. PdfiumViewer는 '내장된 텍스트 추출 기능 없음'과 'OCR 또는 다른 라이브러리를 사용해야 합니다'라고 명시적으로 언급하며, 페이지를 이미지로만 렌더링할 수 있습니다. PdfiumViewer로 PDF에서 텍스트가 필요한 경우 이미지를 렌더링하고 OCR을 실행해야 합니다.
IronPDF는 전체 문서에 대해 ExtractAllText()를, 특정 페이지에 대해 ExtractTextFromPage(index)를 사용하여 기본 텍스트 추출을 제공합니다. OCR이나 해결 방법 없이 PDF 콘텐츠에서 직접 텍스트를 추출합니다. 텍스트 추출 문서에서 추가 옵션을 참조하세요.
예제 2: HTML을 PDF로 변환
이전 (PdfiumViewer):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// PDFiumViewer is primarily a PDF viewer/renderer, not a generator
// It cannot directly convert HTML to PDF
// You would need to use another library to first create the PDF
// Then use PDFiumViewer to display it:
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// This functionality is NOT available in PDFiumViewer
// You would need a different library like wkhtmltopdf or similar
// PDFiumViewer can only open and display existing PDFs:
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
// Can only render/display existing PDF
var image = document.Render(0, 300, 300, true);
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// PDFiumViewer is primarily a PDF viewer/renderer, not a generator
// It cannot directly convert HTML to PDF
// You would need to use another library to first create the PDF
// Then use PDFiumViewer to display it:
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// This functionality is NOT available in PDFiumViewer
// You would need a different library like wkhtmltopdf or similar
// PDFiumViewer can only open and display existing PDFs:
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
// Can only render/display existing PDF
var image = document.Render(0, 300, 300, true);
}
Imports PdfiumViewer
Imports System.IO
Imports System.Drawing.Printing
' PDFiumViewer is primarily a PDF viewer/renderer, not a generator
' It cannot directly convert HTML to PDF
' You would need to use another library to first create the PDF
' Then use PDFiumViewer to display it:
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"
' This functionality is NOT available in PDFiumViewer
' You would need a different library like wkhtmltopdf or similar
' PDFiumViewer can only open and display existing PDFs:
Dim existingPdfPath As String = "output.pdf"
Using document = PdfDocument.Load(existingPdfPath)
' Can only render/display existing PDF
Dim image = document.Render(0, 300, 300, True)
End Using
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"
' Create a PDF from HTML string
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Module
이 예는 두 라이브러리 간의 가장 중요한 기능 차이를 보여줍니다. PdfiumViewer는 '이 기능은 PDFiumViewer에서 사용할 수 없습니다'와 'wkhtmltopdf와 같은 다른 라이브러리가 필요합니다'라고 명시적으로 말합니다—PdfiumViewer는 이미 존재하는 PDF 파일을 열고 표시할 수 있습니다.
IronPDF는 ChromePdfRenderer를 통해 기본 HTML을 PDF로 변환하며, 내부적으로 크로미엄 엔진을 사용하여 HTML, CSS 및 JavaScript를 정확하게 렌더링합니다. RenderHtmlAsPdf() 메서드는 HTML 문자열을 직접 PDF 문서로 변환합니다. IronPDF는 또한 URL을 RenderUrlAsPdf()로 렌더링하고 HTML 파일을 RenderHtmlFileAsPdf()로 렌더링할 수 있습니다. HTML에서 PDF로의 문서에서 포괄적인 예제를 참조하세요.
예제 3: PDF를 이미지로 변환
이전 (PdfiumViewer):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
// Render first page at 300 DPI
int dpi = 300;
using (var image = document.Render(0, dpi, dpi, true))
{
// Save as PNG
image.Save(outputImage, ImageFormat.Png);
Console.WriteLine($"Page rendered to {outputImage}");
}
// Render all pages
for (int i = 0; i < document.PageCount; i++)
{
using (var pageImage = document.Render(i, 150, 150, true))
{
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
}
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
// Render first page at 300 DPI
int dpi = 300;
using (var image = document.Render(0, dpi, dpi, true))
{
// Save as PNG
image.Save(outputImage, ImageFormat.Png);
Console.WriteLine($"Page rendered to {outputImage}");
}
// Render all pages
for (int i = 0; i < document.PageCount; i++)
{
using (var pageImage = document.Render(i, 150, 150, true))
{
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
}
}
}
Imports PdfiumViewer
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Module Module1
Sub Main()
Dim pdfPath As String = "document.pdf"
Dim outputImage As String = "page1.png"
' PDFiumViewer excels at rendering PDFs to images
Using document = PdfDocument.Load(pdfPath)
' Render first page at 300 DPI
Dim dpi As Integer = 300
Using image = document.Render(0, dpi, dpi, True)
' Save as PNG
image.Save(outputImage, ImageFormat.Png)
Console.WriteLine($"Page rendered to {outputImage}")
End Using
' Render all pages
For i As Integer = 0 To document.PageCount - 1
Using pageImage = document.Render(i, 150, 150, True)
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png)
End Using
Next
End Using
End Sub
End Module
이후 (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");
// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
allPageImages[i].Save($"page_{i + 1}.png");
Console.WriteLine($"Saved page {i + 1}");
}
Console.WriteLine($"Total pages converted: {pdf.PageCount}");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");
// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
allPageImages[i].Save($"page_{i + 1}.png");
Console.WriteLine($"Saved page {i + 1}");
}
Console.WriteLine($"Total pages converted: {pdf.PageCount}");
Imports IronPdf
Imports System
Imports System.Linq
Module Module1
Sub Main()
Dim pdfPath As String = "document.pdf"
Dim outputImage As String = "page1.png"
' Open PDF and convert to images
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
' Convert first page to image
Dim firstPageImage = pdf.ToBitmap(0)
firstPageImage(0).Save(outputImage)
Console.WriteLine($"Page rendered to {outputImage}")
' Convert all pages to images
Dim allPageImages = pdf.ToBitmap()
For i As Integer = 0 To allPageImages.Length - 1
allPageImages(i).Save($"page_{i + 1}.png")
Console.WriteLine($"Saved page {i + 1}")
Next
Console.WriteLine($"Total pages converted: {pdf.PageCount}")
End Sub
End Module
이것은 PdfiumViewer의 주요 강점 중 하나인 PDF 이미지를 렌더링하는 곳입니다. 두 라이브러리 모두 이 작업을 효과적으로 처리하지만 다른 패턴을 사용합니다.
PdfiumViewer는 중첩된 using 문이 있는 document.Render(pageIndex, dpiX, dpiY, forPrinting)을 사용하여 적절한 처리를 수행합니다. System.Drawing 및 System.Drawing.Imaging을(를) ImageFormat 열거형에 대해 가져와야 합니다.
IronPDF는 비트맵 배열을 반환하는 pdf.ToBitmap(pageIndex)을(를) 사용합니다. 중첩된 처분 요구 사항이 없는 더 간단한 패턴입니다. 배치 작업의 경우, 매개변수 없이 ToBitmap()을 호출하면 모든 페이지를 반환합니다. 직접 파일 출력에는 RasterizeToImageFiles()을 사용할 수 있습니다. 추가 렌더링 옵션을 위해 PDF에서 이미지로의 문서화를 참조하세요.
네이티브 종속성 제거
PdfiumViewer에서 IronPDF로의 전환의 주요 이점 중 하나는 네이티브 바이너리 관리를 제거하는 것입니다.
이전 (PdfiumViewer) - 복잡한 배포
MyApp/
├── bin/
│ ├── MyApp.dll
│ ├── PdfiumViewer.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── pdfium.dll
이후 (IronPDF) - 간결한 배포
MyApp/
├── bin/
│ ├── MyApp.dll
│ └── IronPdf.dll # 모든 것이 포함됨
네이티브 바이너리 참조 제거
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/
# Remove from .csproj native package references
# <PackageReference Include="PdfiumViewer.Native.x86.v8-xfa" />
# <PackageReference Include="PdfiumViewer.Native.x64.v8-xfa" />
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/
# Remove from .csproj native package references
# <PackageReference Include="PdfiumViewer.Native.x86.v8-xfa" />
# <PackageReference Include="PdfiumViewer.Native.x64.v8-xfa" />
중요한 마이그레이션 노트
내장된 뷰어 제어 없음
IronPDF는 백엔드 중심으로 시각적 PDF 뷰어 컨트롤을 포함하지 않습니다:
// PdfiumViewer: Built-in viewer control
pdfViewer.Document = document;
// IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath);
Process.Start(new ProcessStartInfo(tempPath) { UseShellExecute = true });
// PdfiumViewer: Built-in viewer control
pdfViewer.Document = document;
// IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath);
Process.Start(new ProcessStartInfo(tempPath) { UseShellExecute = true });
' PdfiumViewer: Built-in viewer control
pdfViewer.Document = document
' IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath)
Process.Start(New ProcessStartInfo(tempPath) With {.UseShellExecute = True})
보기 필요에 따라 Process.Start()을 사용하여 기본 PDF 뷰어에서 열거나, PDF 경로가 있는 WebBrowser 컨트롤, 또는 Syncfusion, DevExpress, Telerik과 같은 타사 뷰어 컨트롤을 사용할 수 있습니다.
문서 로딩 방법 변경
// PdfiumViewer
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
// PdfiumViewer
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
' PdfiumViewer
PdfDocument.Load(path)
' IronPDF
PdfDocument.FromFile(path)
저장 방법 변경
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
렌더링 메서드 변경
// PdfiumViewer: Returns image with nested using
using (var image = document.Render(0, 150, 150, true))
{
image.Save("page.png", ImageFormat.Png);
}
// IronPDF: Returns bitmap array
var images = pdf.ToBitmap(0);
images[0].Save("page.png");
// PdfiumViewer: Returns image with nested using
using (var image = document.Render(0, 150, 150, true))
{
image.Save("page.png", ImageFormat.Png);
}
// IronPDF: Returns bitmap array
var images = pdf.ToBitmap(0);
images[0].Save("page.png");
Imports System.Drawing.Imaging
' PdfiumViewer: Returns image with nested using
Using image = document.Render(0, 150, 150, True)
image.Save("page.png", ImageFormat.Png)
End Using
' IronPDF: Returns bitmap array
Dim images = pdf.ToBitmap(0)
images(0).Save("page.png")
페이지 크기 접근 변경
// PdfiumViewer
var size = document.PageSizes[index];
Console.WriteLine($"{size.Width} x {size.Height}");
// IronPDF
var page = pdf.Pages[index];
Console.WriteLine($"{page.Width} x {page.Height}");
// PdfiumViewer
var size = document.PageSizes[index];
Console.WriteLine($"{size.Width} x {size.Height}");
// IronPDF
var page = pdf.Pages[index];
Console.WriteLine($"{page.Width} x {page.Height}");
' PdfiumViewer
Dim size = document.PageSizes(index)
Console.WriteLine($"{size.Width} x {size.Height}")
' IronPDF
Dim page = pdf.Pages(index)
Console.WriteLine($"{page.Width} x {page.Height}")
기능 비교 요약
| 기능 | PdfiumViewer | IronPDF |
|---|---|---|
| PDF 로드 | ✓ | ✓ |
| 이미지로 렌더링 | ✓ | ✓ |
| 내장 뷰어 | ✓ | ✗ |
| PDF 인쇄 | ✓ | ✓ |
| 텍스트 추출 | ✗ | ✓ |
| HTML에서 생성 | ✗ | ✓ |
| URL에서 생성 | ✗ | ✓ |
| PDF 병합 | ✗ | ✓ |
| PDF 분할 | ✗ | ✓ |
| 워터마크 추가 | ✗ | ✓ |
| 헤더/푸터 | ✗ | ✓ |
| 폼 채우기 | ✗ | ✓ |
| 비밀번호 보호 | ✗ | ✓ |
| WinForms 지원 | ✓ | ✓ |
| ASP.NET 지원 | ✗ | ✓ |
| .NET Core 지원 | 제한적 | ✓ |
| 활성 유지관리 | 불확실 | ✓ |
마이그레이션 체크리스트
사전 마이그레이션
- 코드베이스에서 모든PdfiumViewer사용 식별
- PdfViewer 컨트롤을 사용하는 WinForms 나열
- 현재 렌더링 DPI 설정 문서화
- 네이티브 바이너리 참조 확인
- 인쇄 기능 사용 식별
- 뷰어 컨트롤 교체 전략 계획 -IronPDF라이센스 키를 받으세요
패키지 변경 사항
PdfiumViewerNuGet 패키지 제거PdfiumViewer.Native.x86.v8-xfa패키지 제거PdfiumViewer.Native.x64.v8-xfa패키지 제거- x86/ 및 x64/ 폴더에서 네이티브 pdfium.dll 바이너리 삭제
IronPdfNuGet Install-Package:dotnet add package IronPdf
코드 변경 사항
- 시작 시 라이선스 키 구성 추가
PdfDocument.Load()을(를)PdfDocument.FromFile()로 교체document.Save()을(를)pdf.SaveAs()로 교체document.Render()을(를)pdf.ToBitmap()또는RasterizeToImageFiles()로 교체document.PageSizes[i]을(를)pdf.Pages[i].Width/Height로 교체- PdfViewer 컨트롤을 외부 뷰어나 Process.Start()로 교체하십시오
- 새로운 기능(텍스트 추출, HTML to PDF 등)을 추가하십시오
마이그레이션 이후
- 렌더링 출력 품질 테스트
- 인쇄 기능을 테스트하십시오
- 대상 플랫폼에서 테스트하십시오
- 새로운 기능(HTML to PDF, 병합, 워터마크, 보안)을 추가하십시오
- 문서 업데이트

