Comment migrer de PdfiumViewer à IronPDF en C#
La migration de PdfiumViewerversIronPDFfait passer votre flux de travail PDF .NET d'une bibliothèque de visualisation Windows Forms uniquement avec des dépendances binaires natives à une solution PDF complète qui gère la création, la manipulation, l'extraction de texte et le rendu dans tous les types d'applications .NET. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les restrictions de plate-forme tout en ajoutant des capacités que PdfiumViewerne peut pas fournir.
Pourquoi migrer de PdfiumViewerà IronPDF
Comprendre PdfiumViewer
PdfiumViewer est un wrapper .NET pour PDFium, le moteur de rendu PDF de Google utilisé dans le navigateur Chrome. Il s'agit d'une solution simple mais efficace pour intégrer l'affichage des PDF directement dans les applications Windows Forms, offrant une capacité de rendu PDF haute performance et haute fidélité.
Toutefois, il est essentiel de se rappeler que PdfiumViewerest uniquement une visionneuse. Elle ne prend pas en charge la création, l'édition ou la manipulation de fichiers PDF, ce qui peut s'avérer contraignant pour les applications qui exigent plus que de simples capacités de visualisation. En outre, son statut de maintenance incertain crée un risque pour les applications de production - il y a une certaine incertitude quant à son développement et sa maintenance continus, ce qui peut être une préoccupation pour les projets à long terme.
Limitations critiques de PdfiumViewer
-
Fonctionnalité de visualisation uniquement : impossible de créer des PDF à partir de HTML, d'images ou par programmation. Les capacités de PdfiumViewersont limitées à la visualisation des PDF - contrairement aux bibliothèques telles qu'IronPDF, il ne prend pas en charge la création, l'édition, la fusion ou d'autres fonctions de manipulation des PDF.
-
Spécifique à Windows Forms : La bibliothèque est axée sur les applications Windows Forms et ne prend pas en charge d'autres frameworks d'interface utilisateur.
-
Aucune manipulation de PDF : impossible de fusionner, de diviser ou de modifier le contenu du PDF.
-
Dépendances binaires natives : Nécessite des binaires PDFium spécifiques à la plateforme (fichiers pdfium.dll x86 et x64).
-
Maintenance incertaine : mises à jour limitées et support à long terme incertain.
-
Absence d'extraction de texte : PdfiumViewerne dispose pas de fonction d'extraction de texte intégrée ; vous devrez utiliser un logiciel de reconnaissance optique de caractères (OCR) ou une autre bibliothèque. Il ne peut restituer les pages que sous forme d'images.
-
Pas de conversion HTML vers PDF : PdfiumViewerest avant tout un visualiseur/rendu PDF, et non un générateur. Il n'est pas possible de convertir directement du HTML en PDF. Vous devrez utiliser une autre bibliothèque comme wkhtmltopdf ou similaire.
-
Pas d'en-têtes/pieds de page : impossible d'ajouter des numéros de page ou du contenu répétitif.
-
Pas de filigrane : Impossible d'apposer des tampons superposés sur les documents.
- Aucune fonction de sécurité : Impossible de chiffrer ou de protéger par mot de passe les fichiers PDF.
Comparaison PdfiumViewervs IronPDF
| Aspect | PdfiumViewer | IronPDF |
|---|---|---|
| Accent principal | Visionneuse PDF WinForms | Solution PDF complète |
| Licence | Apache 2.0 | Commercial |
| Création de PDF | ✗ | ✓(HTML, URL, images) |
| Manipulation de PDF | ✗ | ✓(fusionner, diviser, éditer) |
| HTML à PDF | ✗ | ✓(moteur Chromium) |
| Extraction de texte | ✗ | ✓ |
| Marqueurs d'eau | ✗ | ✓ |
| En-têtes/Pieds de page | ✗ | ✓ |
| Sécurité | ✗ | ✓ |
| Visionneuse intégrée | ✓ | ✗(axé sur le backend) |
| Support de la plateforme | Windows Forms uniquement | Console, Web, Bureau |
| Soutien au cadre de travail | .NET Framework | .NET Framework, Core, 5+ |
| Maintenance | Incertain | Actif |
Pour les équipes qui prévoient l'adoption de .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une base complète et activement entretenue qui fonctionne pour tous les types d'applications .NET, en éliminant la restriction Windows Forms et la complexité des binaires natifs.
Avant de commencer
Prérequis
- Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
- Accès à NuGet : possibilité d'installer des packages NuGet
- Licence IronPDF : Obtenez votre clé de licence sur IronPDF
Modifications du paquet NuGet
# Remove PdfiumViewerpackages
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
# Remove PdfiumViewerpackages
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
Configuration de la licence
// 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"
Identifier l'utilisation de PdfiumViewer
# Find PdfiumViewerusage
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" .
# Find PdfiumViewerusage
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" .
Référence API complète
Modifications de l'espace de nommage
// 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
Mappages de classes de base
| PdfiumViewer | IronPDF |
|---|---|
PdfDocument |
PdfDocument |
PdfViewer |
(pas d'équivalent) |
PdfRenderer |
ChromePdfRenderer |
| (non disponible) | HtmlHeaderFooter |
Mappages de chargement de documents
| PdfiumViewer | IronPDF |
|---|---|
PdfDocument.Load(path) |
PdfDocument.FromFile(path) |
PdfDocument.Load(stream) |
PdfDocument.FromStream(stream) |
PdfDocument.Load(bytes) |
PdfDocument.FromBinaryData(bytes) |
Mappages de propriétés de documents
| PdfiumViewer | IronPDF |
|---|---|
document.PageCount |
document.PageCount |
document.PageSizes |
document.Pages[i].Width/Height |
document.GetPageSize(index) |
document.Pages[index].Width/Height |
Mappages de rendu de page
| PdfiumViewer | IronPDF |
|---|---|
document.Render(pageIndex, dpiX, dpiY, forPrinting) |
pdf.ToBitmap(pageIndex) |
document.Render(pageIndex, width, height, dpiX, dpiY, flags) |
pdf.RasterizeToImageFiles(path, dpi) |
Enregistrement des documents Mappings
| PdfiumViewer | IronPDF |
|---|---|
document.Save(path) |
pdf.SaveAs(path) |
document.Save(stream) |
pdf.Stream |
| (non disponible) | pdf.BinaryData |
Nouvelles fonctionnalités non disponibles dans PdfiumViewer
| Fonctionnalité d'IronPDF | Description du projet |
|---|---|
pdf.ExtractAllText() |
Extraire le texte de toutes les pages |
pdf.ExtractTextFromPage(index) |
Extraire le texte d'une page spécifique |
ChromePdfRenderer.RenderHtmlAsPdf() |
Créer à partir de HTML |
ChromePdfRenderer.RenderUrlAsPdf() |
Créer à partir d'une URL |
PdfDocument.Merge() |
Combiner des PDF |
pdf.CopyPages() |
Extraire des pages |
pdf.RemovePages() |
Supprimer des pages |
pdf.ApplyWatermark() |
Ajouter des filigranes |
pdf.AddHtmlHeaders() |
Ajouter des en-têtes |
pdf.AddHtmlFooters() |
Ajouter des pieds de page |
pdf.SecuritySettings |
Protection par mot de passe |
pdf.Form |
Remplissage de formulaires |
Exemples de migration de code
Exemple 1 : Extraction de texte à partir d'un PDF
Avant (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
Après (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
Cet exemple met en évidence une lacune fondamentale en matière de capacités. PdfiumViewerindique explicitement qu'il "n'a pas d'extraction de texte intégrée" et que "vous devriez utiliser l'OCR ou une autre bibliothèque" - il ne peut rendre les pages que sous forme d'images. Si vous avez besoin de texte à partir d'un PDF avec PdfiumViewer, vous êtes obligé d'effectuer un rendu sous forme d'image et d'exécuter l'OCR.
IronPDF fournit une extraction de texte native avec ExtractAllText() pour l'ensemble du document ou ExtractTextFromPage(index) pour des pages spécifiques. Pas d'OCR, pas de solutions de contournement - extraction directe du texte à partir du contenu du PDF. Consultez la documentation sur l'extraction de texte pour connaître les options supplémentaires.
Exemple 2 : Conversion de HTML en PDF
Avant (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
Après (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
Cet exemple illustre la différence de capacité la plus importante entre les deux bibliothèques. PdfiumViewerindique explicitement "Cette fonctionnalité n'est PAS disponible dans PDFiumViewer" et "Vous auriez besoin d'une bibliothèque différente comme wkhtmltopdf ou similaire"- PdfiumViewerne peut qu'ouvrir et afficher des PDF existants.
IronPDF fournit une conversion native HTML vers PDF via ChromePdfRenderer, qui utilise un moteur Chromium en interne pour un rendu précis du HTML, du CSS et du JavaScript. La méthode RenderHtmlAsPdf() convertit directement les chaînes HTML en documents PDF.IronPDFpeut également rendre les URL avec RenderUrlAsPdf() et les fichiers HTML avec RenderHtmlFileAsPdf(). Consultez la documentation HTML vers PDF pour des exemples complets.
Exemple 3 : Conversion de PDF en images
Avant (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
Après (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
C'est un domaine dans lequel PdfiumViewerexcelle - le rendu des PDF en images est sa principale force. Les deux bibliothèques s'acquittent efficacement de cette tâche, mais selon des schémas différents.
PdfiumViewer utilise document.Render(pageIndex, dpiX, dpiY, forPrinting) avec des instructions imbriquées using pour une élimination appropriée. Vous devez importer System.Drawing et System.Drawing.Imaging pour l'énumération ImageFormat.
IronPDF utilise pdf.ToBitmap(pageIndex) qui renvoie un tableau bitmap. Le modèle est plus simple, sans exigences d'élimination imbriquées. Pour les opérations par lots, ToBitmap() sans paramètres renvoie toutes les pages. Vous pouvez également utiliser RasterizeToImageFiles() pour une sortie directe dans un fichier. Voir la documentation sur le passage du PDF à l'image pour des options de rendu supplémentaires.
Suppression des dépendances natives
L'un des avantages significatifs de la migration de PdfiumViewerversIronPDFest l'élimination de la gestion des binaires natifs.
Avant (PdfiumViewer) - Déploiement complexe
MyApp/
├── bin/
│ ├─── MyApp.dll
│ ├── PdfiumViewer.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── pdfium.dll
Après (IronPDF) - Déploiement propre
MyApp/
├── bin/
│ ├─── MyApp.dll
│ └── IronPDF.dll # Everything included
Supprimer les références binaires natives
# 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" />
Notes de migration essentielles
Aucune commande de visualisation intégrée
IronPDF est axé sur le backend et n'inclut pas de contrôle visuel de visualisation des 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})
Pour vos besoins de visualisation, envisagez d'utiliser Process.Start() pour ouvrir dans la visionneuse PDF par défaut, un contrôle WebBrowser avec le chemin PDF ou des contrôles de visionneuse tiers comme Syncfusion, DevExpress ou Telerik.
Modification de la méthode de chargement des documents
// PdfiumViewer
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
// PdfiumViewer
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
' PdfiumViewer
PdfDocument.Load(path)
' IronPDF
PdfDocument.FromFile(path)
Enregistrer le changement de méthode
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
Modification de la méthode de rendu
// 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")
Modification de la taille de la page
// 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}")
Résumé de la comparaison des fonctionnalités
| Fonction | PdfiumViewer | IronPDF |
|---|---|---|
| Charger le PDF | ✓ | ✓ |
| Rendu à l'image | ✓ | ✓ |
| Visionneuse intégrée | ✓ | ✗ |
| Imprimer le PDF | ✓ | ✓ |
| Extraire le texte | ✗ | ✓ |
| Créer à partir de HTML | ✗ | ✓ |
| Créer à partir d'une URL | ✗ | ✓ |
| Fusionner des PDF | ✗ | ✓ |
| Diviser les PDF | ✗ | ✓ |
| Ajouter des filigranes | ✗ | ✓ |
| En-têtes/Pieds de page | ✗ | ✓ |
| Remplissage de formulaires | ✗ | ✓ |
| Protection par mot de passe | ✗ | ✓ |
| Support WinForms | ✓ | ✓ |
| Support ASP.NET | ✗ | ✓ |
| prise en charge de .NET Core | Limité | ✓ |
| Maintenance active | Incertain | ✓ |
Liste de contrôle de la migration
Pré-migration
- Identifier toutes les utilisations de PdfiumViewerdans le code source
- Lister les formulaires WinForms à l'aide du contrôle PdfViewer
- Paramètres DPI de rendu actuels du document
- Vérifier les références binaires natives
- Identifier l'utilisation des fonctionnalités d'impression
- Stratégie de remplacement des commandes du visualiseur de plans
- Obtenir une clé de licence IronPDF
Modifications du paquet
- Supprimer le package NuGet
PdfiumViewer - Supprimer le package
PdfiumViewer.Native.x86.v8-xfa - Supprimer le package
PdfiumViewer.Native.x64.v8-xfa - Supprimez les fichiers binaires natifs pdfium.dll des dossiers x86/ et x64/
- Installez le package NuGet
IronPdf:dotnet add package IronPdf
Modifications du code
- Ajouter la configuration de la clé de licence au démarrage
- Remplacez
PdfDocument.Load()parPdfDocument.FromFile() - Remplacez
document.Save()parpdf.SaveAs() - Remplacez
document.Render()parpdf.ToBitmap()ouRasterizeToImageFiles() - Remplacez
document.PageSizes[i]parpdf.Pages[i].Width/Height - Remplacez le contrôle PdfViewer par une visionneuse externe ou Process.Start()
- Ajouter de nouvelles fonctionnalités (extraction de texte, conversion HTML vers PDF, etc.)
Après la migration
- Tester la qualité du rendu.
- Fonctionnalité d'impression de test
- Tester sur les plateformes cibles
- Ajouter de nouvelles fonctionnalités (HTML vers PDF, fusion, filigranes, sécurité)
- Mise à jour de la documentation

