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

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의 제약 사항

  1. 뷰잉 전용 기능: HTML, 이미지 또는 프로그래밍 방식으로 PDF를 생성할 수 없습니다. PdfiumViewer의 기능은 PDF 뷰잉에 국한되며, IronPDF와 같은 라이브러리와 달리 PDF 생성, 편집, 병합 또는 기타 조작 기능을 지원하지 않습니다.

  2. Windows Forms 전용: 라이브러리는 Windows Forms 응용 프로그램에 중점을 두고 있으며, 다른 사용자 인터페이스 프레임워크를 지원하지 않습니다.

  3. PDF 조작 불가: PDF 콘텐츠를 병합, 분할 또는 수정할 수 없습니다.

  4. 네이티브 바이너리 종속성: 플랫폼 전용 Pdfium 바이너리(x86 및 x64 pdfium.dll 파일)가 필요합니다.

  5. 유지보수 불확실성: 업데이트가 제한적이며 장기 지원이 불명확합니다.

  6. 텍스트 추출 불가: PdfiumViewer에는 내장된 텍스트 추출 기능이 없으며, OCR 또는 다른 라이브러리를 사용해야 합니다. 페이지를 이미지로만 렌더링할 수 있습니다.

  7. HTML을 PDF로 변환 불가: PdfiumViewer는 주로 PDF 뷰어/렌더러일 뿐, 생성기가 아닙니다. HTML을 PDF로 직접 변환할 수 없습니다. wkhtmltopdf와 같은 라이브러리를 사용해야 합니다.

  8. 머리글/바닥글 없음: 페이지 번호 또는 반복되는 콘텐츠를 추가할 수 없습니다.

  9. 워터마크 없음: 문서에 오버레이를 찍을 수 없습니다.

  10. 보안 기능 없음: 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 제한 및 네이티브 바이너리 복잡성을 제거합니다.


시작하기 전에

필수 조건

  1. .NET 환경:.NET Framework4.6.2+ 또는 .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet 접근 권한: NuGet 패키지를 설치할 수 있는 능력
  3. 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
SHELL

라이선스 구성

// 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

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" .
SHELL

완전한 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
$vbLabelText   $csharpLabel

핵심 클래스 매핑

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
$vbLabelText   $csharpLabel

이후 (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
$vbLabelText   $csharpLabel

이 예는 기본적인 기능 차이를 강조합니다. 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
$vbLabelText   $csharpLabel

이후 (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
$vbLabelText   $csharpLabel

이 예는 두 라이브러리 간의 가장 중요한 기능 차이를 보여줍니다. 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
$vbLabelText   $csharpLabel

이후 (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
$vbLabelText   $csharpLabel

이것은 PdfiumViewer의 주요 강점 중 하나인 PDF 이미지를 렌더링하는 곳입니다. 두 라이브러리 모두 이 작업을 효과적으로 처리하지만 다른 패턴을 사용합니다.

PdfiumViewer는 중첩된 using 문이 있는 document.Render(pageIndex, dpiX, dpiY, forPrinting)을 사용하여 적절한 처리를 수행합니다. System.DrawingSystem.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" />
SHELL

중요한 마이그레이션 노트

내장된 뷰어 제어 없음

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})
$vbLabelText   $csharpLabel

보기 필요에 따라 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)
$vbLabelText   $csharpLabel

저장 방법 변경

// PdfiumViewer
document.Save(path)

// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)

// IronPDF
pdf.SaveAs(path)
$vbLabelText   $csharpLabel

렌더링 메서드 변경

// 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")
$vbLabelText   $csharpLabel

페이지 크기 접근 변경

// 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}")
$vbLabelText   $csharpLabel

기능 비교 요약

기능 PdfiumViewer IronPDF
PDF 로드
이미지로 렌더링
내장 뷰어
PDF 인쇄
텍스트 추출
HTML에서 생성
URL에서 생성
PDF 병합
PDF 분할
워터마크 추가
헤더/푸터
폼 채우기
비밀번호 보호
WinForms 지원
ASP.NET 지원
.NET Core 지원 제한적
활성 유지관리 불확실

마이그레이션 체크리스트

사전 마이그레이션

  • 코드베이스에서 모든PdfiumViewer사용 식별
  • PdfViewer 컨트롤을 사용하는 WinForms 나열
  • 현재 렌더링 DPI 설정 문서화
  • 네이티브 바이너리 참조 확인
  • 인쇄 기능 사용 식별
  • 뷰어 컨트롤 교체 전략 계획 -IronPDF라이센스 키를 받으세요

패키지 변경 사항

  • PdfiumViewer NuGet 패키지 제거
  • PdfiumViewer.Native.x86.v8-xfa 패키지 제거
  • PdfiumViewer.Native.x64.v8-xfa 패키지 제거
  • x86/ 및 x64/ 폴더에서 네이티브 pdfium.dll 바이너리 삭제
  • IronPdf NuGet 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, 병합, 워터마크, 보안)을 추가하십시오
  • 문서 업데이트

커티스 차우
기술 문서 작성자

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

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

아이언 서포트 팀

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