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
-
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.
-
Specyfika Windows Forms: Biblioteka koncentruje się na aplikacjach Windows Forms i nie oferuje wsparcia dla innych frameworków interfejsu użytkownika.
-
Brak możliwości edycji plików PDF: Nie można łączyć, dzielić ani modyfikować treści plików PDF.
-
Natywne zależności binarne: Wymaga plików binarnych PDFium specyficznych dla platformy (pliki pdfium.dll dla x86 i x64).
-
Niepewna konserwacja: Ograniczone aktualizacje i niejasne długoterminowe wsparcie.
-
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.
-
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.
-
Brak nagłówków/stopek: Nie można dodawać numerów stron ani powtarzających się treści.
-
Brak znaków wodnych: Nie można nanoszenia na dokumenty nakładek.
- 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
- Środowisko .NET:.NET Framework4.6.2+ lub .NET Core 3.1+ / .NET 5/6/7/8/9+
- Dostęp do NuGet: Możliwość instalowania pakietów NuGet
- 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
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"
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" .
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
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
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
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
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
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
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
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" />
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})
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)
Zmiana metody zapisywania
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
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")
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}")
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()przezPdfDocument.FromFile() - Zastąp
document.Save()przezpdf.SaveAs() - Zastąp
document.Render()przezpdf.ToBitmap()lubRasterizeToImageFiles() - Zastąp
document.PageSizes[i]przezpdf.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

