Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

Jak przeprowadzić migrację z PdfiumViewer do IronPDF w języku C#

Migracja zPdfiumViewerdoIronPDFprzenosi przepływ pracy z plikami PDF w środowisku .NET z biblioteki przeznaczonej wyłącznie do przeglądania w Windows Forms, posiadającej natywne zależności binarne, do kompleksowego rozwiązania do obsługi plików PDF, które obsługuje tworzenie, manipulowanie, wyodrębnianie tekstu i renderowanie we wszystkich typach aplikacji .NET. Niniejszy przewodnik zawiera kompletną, krok po kroku ścieżkę migracji, która eliminuje ograniczenia platformowe, jednocześnie dodając funkcje, którychPdfiumViewernie jest w stanie zapewnić.

Dlaczego warto przejść zPdfiumViewerna IronPDF

Zrozumienie PdfiumViewer

PdfiumViewer to nakładka .NET dla PDFium, silnika renderującego pliki PDF firmy Google używanego w przeglądarce Google Chrome. Oferuje proste, ale potężne rozwiązanie do integracji przeglądania plików PDF bezpośrednio z aplikacjami Windows Forms, zapewniając wysokowydajne i wierne renderowanie plików PDF.

Należy jednak pamiętać, żePdfiumViewerjest wyłącznie przeglądarką. Nie obsługuje tworzenia, edycji ani manipulacji plikami PDF, co może stanowić ograniczenie dla aplikacji wymagających więcej niż tylko funkcji przeglądania. Ponadto niepewny status utrzymania stanowi ryzyko dla aplikacji produkcyjnych — istnieje pewna niepewność co do dalszego rozwoju i utrzymania, co może budzić obawy w przypadku długoterminowych projektów.

Istotne ograniczenia programu PdfiumViewer

  1. Funkcjonalność tylko do przeglądania: Nie można tworzyć plików PDF z HTML, obrazów ani programowo. MożliwościPdfiumViewerograniczają się do przeglądania plików PDF — w przeciwieństwie do bibliotek takich jak IronPDF, nie obsługuje on tworzenia, edycji, scalania ani innych funkcji manipulacyjnych plików PDF.

  2. Specyfika Windows Forms: Biblioteka koncentruje się na aplikacjach Windows Forms i nie oferuje wsparcia dla innych frameworków interfejsu użytkownika.

  3. Brak możliwości edycji plików PDF: Nie można łączyć, dzielić ani modyfikować treści plików PDF.

  4. Natywne zależności binarne: Wymaga plików binarnych PDFium specyficznych dla platformy (pliki pdfium.dll dla x86 i x64).

  5. Niepewna konserwacja: Ograniczone aktualizacje i niejasne długoterminowe wsparcie.

  6. Brak funkcji wyodrębniania tekstu:PdfiumViewernie posiada wbudowanej funkcji wyodrębniania tekstu — konieczne jest użycie OCR lub innej biblioteki. Może renderować strony wyłącznie jako obrazy.

  7. Brak konwersji HTML do PDF:PdfiumViewerto przede wszystkim przeglądarka/renderer plików PDF, a nie generator. Nie może bezpośrednio konwertować HTML na PDF. Konieczne będzie użycie innej biblioteki, takiej jak wkhtmltopdf lub podobnej.

  8. Brak nagłówków/stopek: Nie można dodawać numerów stron ani powtarzających się treści.

  9. Brak znaków wodnych: Nie można nanoszenia na dokumenty nakładek.

  10. Brak funkcji bezpieczeństwa: Nie można szyfrować ani chronić hasłem plików PDF.

PorównaniePdfiumVieweri IronPDF

Aspekt PdfiumViewer IronPDF
Główny cel Przeglądarka plików PDF dla WinForms Kompletne rozwiązanie PDF
Licencja Apache 2.0 Komercjalne
Tworzenie plików PDF ✓(HTML, URL, obrazy)
Manipulacja plikami PDF ✓(scal, podziel, edytuj)
HTML do PDF ✓(silnik Chromium)
Wyodrębnianie tekstu
Znaki wodne
Nagłówki/stopki
Bezpieczeństwo
Wbudowana przeglądarka ✗(skupione na backendzie)
Obsługa platform Tylko Windows Forms Konsola, Internet, Komputer stacjonarny
Obsługa frameworków .NET Framework .NET Framework, Core, 5+
Konserwacja Niepewne Aktywne

Dla zespołów planujących wdrożenie .NET 10 i C# 14 w latach 2025 i 2026,IronPDFzapewnia kompleksową, aktywnie utrzymywaną platformę, która działa we wszystkich typach aplikacji .NET, eliminując ograniczenia związane z Windows Forms i złożoność natywnych plików binarnych.


Zanim zaczniesz

Wymagania wstępne

  1. Środowisko .NET:.NET Framework4.6.2+ lub .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Dostęp do NuGet: Możliwość instalowania pakietów NuGet
  3. Licencja IronPDF: Uzyskaj klucz licencyjny na stronie ironpdf.com

Zmiany w pakiecie 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

Konfiguracja licencji

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

Zidentyfikuj zastosowanie 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

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

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

Mapowania klas podstawowych

PdfiumViewer IronPDF
PdfDocument PdfDocument
PdfViewer (brak odpowiednika)
PdfRenderer ChromePdfRenderer
(niedostępne) HtmlHeaderFooter

Mapowania ładowania dokumentów

PdfiumViewer IronPDF
PdfDocument.Load(path) PdfDocument.FromFile(path)
PdfDocument.Load(stream) PdfDocument.FromStream(stream)
PdfDocument.Load(bytes) PdfDocument.FromBinaryData(bytes)

Mapowanie właściwości dokumentu

PdfiumViewer IronPDF
document.PageCount document.PageCount
document.PageSizes document.Pages[i].Width/Height
document.GetPageSize(index) document.Pages[index].Width/Height

Mapowania renderowania stron

PdfiumViewer IronPDF
document.Render(pageIndex, dpiX, dpiY, forPrinting) pdf.ToBitmap(pageIndex)
document.Render(pageIndex, width, height, dpiX, dpiY, flags) pdf.RasterizeToImageFiles(path, dpi)

Zapisywanie mapowań dokumentów

PdfiumViewer IronPDF
document.Save(path) pdf.SaveAs(path)
document.Save(stream) pdf.Stream
(niedostępne) pdf.BinaryData

Nowe funkcje niedostępne w PdfiumViewer

FunkcjaIronPDF Opis
pdf.ExtractAllText() Wyodrębnij tekst ze wszystkich stron
pdf.ExtractTextFromPage(index) Wyodrębnij tekst z określonej strony
ChromePdfRenderer.RenderHtmlAsPdf() Utwórz z HTML
ChromePdfRenderer.RenderUrlAsPdf() Utwórz z adresu URL
PdfDocument.Merge() Łączenie plików PDF
pdf.CopyPages() Wyodrębnij strony
pdf.RemovePages() Usuń strony
pdf.ApplyWatermark() Dodaj znaki wodne
pdf.AddHtmlHeaders() Dodaj nagłówki
pdf.AddHtmlFooters() Dodaj stopki
pdf.SecuritySettings Ochrona hasłem
pdf.Form Wypełnianie formularzy

Przykłady migracji kodu

Przykład 1: Pobieranie tekstu z pliku PDF

Przed (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

Po (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

Ten przykład podkreśla fundamentalną lukę w możliwościach.PdfiumViewerwyraźnie stwierdza, że "nie posiada wbudowanej funkcji wyodrębniania tekstu" i "konieczne jest użycie OCR lub innej biblioteki" — może jedynie renderować strony jako obrazy. Jeśli potrzebujesz tekstu z pliku PDF przy użyciu PdfiumViewer, musisz go przekształcić w obraz i uruchomić OCR.

IronPDF zapewnia natywne wyodrębnianie tekstu za pomocą ExtractAllText() dla całego dokumentu lub ExtractTextFromPage(index) dla określonych stron. Bez OCR, bez obejść — bezpośrednie wyodrębnianie tekstu z treści pliku PDF. Dodatkowe opcje można znaleźć w dokumentacji dotyczącej ekstrakcji tekstu.

Przykład 2: Konwersja HTML do PDF

Przed (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

Po (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

Ten przykład ilustruje najważniejszą różnicę w możliwościach obu bibliotek.PdfiumViewerwyraźnie stwierdza: "Ta funkcja NIE jest dostępna w PDFiumViewer" oraz "Potrzebna byłaby inna biblioteka, taka jak wkhtmltopdf lub podobna" —PdfiumViewermoże jedynie otwierać i wyświetlać istniejące pliki PDF.

IronPDF zapewnia natywną konwersję HTML do PDF poprzez ChromePdfRenderer, który wykorzystuje wewnętrznie silnik Chromium do dokładnego renderowania HTML, CSS i JavaScript. Metoda RenderHtmlAsPdf() konwertuje ciągi znaków HTML bezpośrednio na dokumenty PDF.IronPDFmoże również renderować adresy URL za pomocą RenderUrlAsPdf() oraz pliki HTML za pomocą RenderHtmlFileAsPdf(). Kompleksowe przykłady można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.

Przykład 3: Konwersja plików PDF na obrazy

Przed (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

Po (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

Jest to obszar, w którymPdfiumViewerwyróżnia się na tle innych — renderowanie plików PDF do obrazów jest jego główną zaletą. Obie biblioteki skutecznie radzą sobie z tym zadaniem, ale w różny sposób.

PdfiumViewer używa document.Render(pageIndex, dpiX, dpiY, forPrinting) z zagnieżdżonymi instrukcjami using w celu prawidłowego usuwania. Musisz zaimportować System.Drawing i System.Drawing.Imaging dla wyliczenia ImageFormat.

IronPDF używa pdf.ToBitmap(pageIndex), co zwraca tablicę bitmap. Wzorzec jest prostszy bez zagnieżdżonych wymagań dotyczących usuwania. W przypadku operacji wsadowych ToBitmap() bez parametrów zwraca wszystkie strony. Można również użyć RasterizeToImageFiles() do bezpośredniego wyświetlania pliku. Dodatkowe opcje renderowania można znaleźć w dokumentacji dotyczącej konwersji plików PDF na obrazy.


Usuwanie zależności natywnych

Jedną z istotnych korzyści wynikających z migracji zPdfiumViewerdoIronPDFjest wyeliminowanie zarządzania natywnymi plikami binarnymi.

Przed (PdfiumViewer) – Złożone wdrożenie

MyApp/
├── bin/
│   ├── MyApp.dll
│   ├── PdfiumViewer.dll
│   ├── x86/
│   │   └── pdfium.dll
│   └── x64/
│       └── pdfium.dll

Po (IronPDF) - Czyste wdrożenie

MyApp/
├── bin/
│   ├── MyApp.dll
│   └── IronPdf.dll  # Wszystko w zestawie

Usuń odniesienia do plików binarnych

# 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

Ważne uwagi dotyczące migracji

Brak wbudowanego kontrolki przeglądarki

IronPDF koncentruje się na zapleczu i nie zawiera wizualnego kontrolki przeglądarki plików 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

W celu wyświetlenia pliku rozważ użycie Process.Start() do otwarcia w domyślnej przeglądarce PDF, kontrolce WebBrowser z ścieżką do pliku PDF lub kontrolkach przeglądarek innych firm, takich jak Syncfusion, DevExpress lub Telerik.

Zmiana metody ładowania dokumentów

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

Zmiana metody zapisywania

// PdfiumViewer
document.Save(path)

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

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

Zmiana metody renderowania

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

Zmiana dostępu do rozmiaru strony

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

Podsumowanie porównania funkcji

Funkcja PdfiumViewer IronPDF
Pobierz plik PDF
Renderuj do obrazu
Wbudowana przeglądarka
PRINT PDF
Wyodrębnij tekst
Utwórz z HTML
Utwórz z adresu URL
Łączenie plików PDF
Podział plików PDF
Dodaj znaki wodne
Nagłówki/stopki
Wypełnianie formularzy
Ochrona hasłem
Obsługa WinForms
Obsługa ASP.NET
Obsługa .NET Core Ograniczone
Aktywna konserwacja Niepewne

Lista kontrolna migracji

Przed migracją

  • Zidentyfikuj wszystkie przypadki użyciaPdfiumViewerw kodzie źródłowym
  • Lista WinForms wykorzystujących kontrolkę PdfViewer
  • Dokumentuj aktualne ustawienia DPI renderowania
  • Sprawdź, czy nie ma odniesień do plików binarnych
  • Określ wykorzystanie funkcji drukowania
  • Strategia wymiany kontrolki przeglądarki planów
  • Uzyskaj klucz licencyjny IronPDF

Zmiany w pakiecie

  • Usuń pakiet NuGet PdfiumViewer
  • Usuń pakiet PdfiumViewer.Native.x86.v8-xfa
  • Usuń pakiet PdfiumViewer.Native.x64.v8-xfa
  • Usuń natywne pliki binarne pdfium.dll z folderów x86/ i x64/
  • Zainstaluj pakiet NuGet IronPdf: dotnet add package IronPdf

Zmiany w kodzie

  • Dodaj konfigurację klucza licencyjnego podczas uruchamiania
  • Zastąp PdfDocument.Load() przez PdfDocument.FromFile()
  • Zastąp document.Save() przez pdf.SaveAs()
  • Zastąp document.Render() przez pdf.ToBitmap() lub RasterizeToImageFiles()
  • Zastąp document.PageSizes[i] przez pdf.Pages[i].Width/Height
  • Zastąp kontrolkę PdfViewer zewnętrzną przeglądarką lub Process.Start()
  • Dodaj nowe funkcje (wyodrębnianie tekstu, konwersja HTML do PDF itp.)

Po migracji

  • Sprawdź jakość renderowania
  • Funkcja drukowania testowego
  • Testy na platformach docelowych
  • Dodaj nowe funkcje (HTML do PDF, scalanie, znaki wodne, zabezpieczenia)
  • Aktualizacja dokumentacji

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie