Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von PdfiumViewer zu IronPDF in C# migriert

Durch die Migration von PdfiumViewer zu IronPDF wird Ihr .NET-PDF-Workflow von einer reinen Windows Forms-Anzeigebibliothek mit nativen Binärabhängigkeiten zu einer umfassenden PDF-Lösung, die die Erstellung, Bearbeitung, Textextraktion und das Rendering für alle .NET-Anwendungstypen ermöglicht. Dieses Handbuch bietet einen vollständigen, schrittweisen Migrationspfad, der Plattformbeschränkungen beseitigt und gleichzeitig Funktionen hinzufügt, die PdfiumViewer nicht bieten kann.

Warum von PdfiumViewer zu IronPDF migrieren

PdfiumViewer verstehen

PdfiumViewer ist ein .NET-Wrapper für PDFium, die PDF-Rendering-Engine von Google, die im Chrome-Browser verwendet wird. Es bietet eine einfache, aber wirkungsvolle Lösung für die Integration der PDF-Anzeige direkt in Windows Forms-Anwendungen, die eine leistungsstarke, originalgetreue PDF-Rendering-Funktion bietet.

Es ist jedoch wichtig zu wissen, dass PdfiumViewer lediglich ein Viewer ist. Sie unterstützt nicht die Erstellung, Bearbeitung oder Manipulation von PDF-Dateien, was für Anwendungen, die mehr als nur Anzeigefunktionen erfordern, eine Einschränkung darstellen kann. Darüber hinaus stellt der unsichere Wartungsstatus ein Risiko für Produktionsanwendungen dar - es besteht eine gewisse Ungewissheit in Bezug auf die laufende Entwicklung und Wartung, was bei langfristigen Projekten ein Problem darstellen kann.

Kritische PdfiumViewer-Einschränkungen

  1. Nur-Anzeige-Funktionalität: Es können keine PDFs aus HTML, Bildern oder programmatisch erstellt werden. Die Fähigkeiten von PdfiumViewer beschränken sich auf die Anzeige von PDF-Dateien - im Gegensatz zu Bibliotheken wie IronPDF unterstützt es nicht die Erstellung, Bearbeitung, Zusammenführung oder andere manipulative Funktionen von PDF-Dateien.

  2. Windows Forms-spezifisch: Die Bibliothek konzentriert sich auf Windows Forms-Anwendungen und bietet keine Unterstützung für andere Benutzeroberflächen-Frameworks.

  3. Keine PDF-Manipulation: PDF-Inhalte können nicht zusammengeführt, aufgeteilt oder verändert werden.

  4. Native Binary Dependencies: Erfordert plattformspezifische PDFium-Binärdateien (x86- und x64-pdfium.dll-Dateien).

  5. Unsichere Wartung: Begrenzte Aktualisierungen und unklare langfristige Unterstützung.

  6. Keine Textextraktion: PdfiumViewer verfügt über keine integrierte Textextraktion – Sie müssten OCR oder eine andere Bibliothek verwenden. Es können nur Seiten als Bilder wiedergegeben werden.

  7. Kein HTML zu PDF: PdfiumViewer ist in erster Linie ein PDF-Viewer/Renderer, kein Generator. Eine direkte Umwandlung von HTML in PDF ist nicht möglich. Sie müssten eine andere Bibliothek wie wkhtmltopdf oder eine ähnliche verwenden.

  8. Keine Kopf-/Fußzeilen: Es können keine Seitenzahlen oder sich wiederholende Inhalte hinzugefügt werden.

  9. Keine Wasserzeichen: Dokumente dürfen nicht mit Overlays versehen werden.

  10. Keine Sicherheitsfunktionen: PDFs können nicht verschlüsselt oder mit einem Passwort geschützt werden.

PdfiumViewer vs IronPDF Vergleich

Aspekt PdfiumViewer IronPDF
Primärer Schwerpunkt WinForms PDF-Betrachter Vollständige PDF-Lösung
Lizenz Apache 2.0 Kommerziell
PDF-Erstellung ✓(HTML, URL, Bilder)
PDF-Bearbeitung ✓(zusammenführen, teilen, bearbeiten)
HTML zu PDF ✓(Chromium-Engine)
Textextraktion
Wasserzeichen
Kopf-/Fußzeilen
Sicherheit
Eingebauter Viewer ✗(Backend-fokussiert)
Windows, Linux, macOS, Docker, Azure, AWS. Nur Windows Forms Konsole, Web, Desktop
Framework-Unterstützung .NET Framework .NET Framework, Core, 5+
Wartung Ungewiss Aktiv

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietet IronPDF eine umfassende, aktiv gewartete Grundlage, die für alle .NET-Anwendungstypen geeignet ist und die Beschränkungen von Windows Forms und die Komplexität nativer Binärdateien beseitigt.


Bevor Sie beginnen

Voraussetzungen

  1. .NET -Umgebung: .NET Framework4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
  3. IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.

NuGet-Paketänderungen

# Remove PdfiumViewer packages
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 PdfiumViewer packages
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

Lizenz-Konfiguration

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

# Find PdfiumViewer usage
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 PdfiumViewer usage
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

Komplette API-Referenz

Namensraumänderungen

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

Kernklassen-Zuordnungen

PdfiumViewer IronPDF
PdfDocument PdfDocument
PdfViewer (keine Entsprechung)
PdfRenderer ChromePdfRenderer
(nicht verfügbar) HtmlHeaderFooter

Zuordnungen beim Laden von Dokumenten

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

Zuordnungen von Dokumenteigenschaften

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

Seiten-Rendering-Zuordnungen

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

Zuordnungen von Dokumenten speichern

PdfiumViewer IronPDF
document.Save(path) pdf.SaveAs(path)
document.Save(stream) pdf.Stream
(nicht verfügbar) pdf.BinaryData

Neue Funktionen, die in PdfiumViewer nicht verfügbar sind

IronPDF Merkmal Beschreibung
pdf.ExtractAllText() Text von allen Seiten extrahieren
pdf.ExtractTextFromPage(index) Text von einer bestimmten Seite extrahieren
ChromePdfRenderer.RenderHtmlAsPdf() Aus HTML erstellen
ChromePdfRenderer.RenderUrlAsPdf() Von URL erstellen
PdfDocument.Merge() PDFs kombinieren
pdf.CopyPages() Seiten extrahieren
pdf.RemovePages() Seiten löschen
pdf.ApplyWatermark() Wasserzeichen hinzufügen
pdf.AddHtmlHeaders() Kopfzeilen hinzufügen
pdf.AddHtmlFooters() Fußzeilen hinzufügen
pdf.SecuritySettings Passwortschutz
pdf.Form Ausfüllen von Formularen

Beispiele für die Code-Migration

Beispiel 1: Textextraktion aus PDF

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

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

Dieses Beispiel verdeutlicht eine grundlegende Fähigkeitslücke. PdfiumViewer weist ausdrücklich darauf hin, dass es "keine integrierte Textextraktion hat" und "Sie OCR oder eine andere Bibliothek verwenden müssten" - es kann Seiten nur als Bilder darstellen. Wenn Sie mit PdfiumViewer Text aus einer PDF-Datei benötigen, sind Sie gezwungen, ein Bild zu rendern und OCR auszuführen.

IronPDF bietet native Textextraktion mit ExtractAllText() für das gesamte Dokument oder ExtractTextFromPage(index) für bestimmte Seiten. Keine OCR, keine Umgehungslösungen - direkte Textextraktion aus dem PDF-Inhalt. Weitere Optionen finden Sie in der Dokumentation zur Textextraktion .

Beispiel 2: Konvertierung von HTML in PDF

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

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

Dieses Beispiel zeigt den größten Unterschied zwischen den Fähigkeiten der beiden Bibliotheken. PdfiumViewer weist ausdrücklich darauf hin, dass diese Funktion in PDFiumViewer NICHT zur Verfügung steht und dass Sie eine andere Bibliothek wie wkhtmltopdf oder eine ähnliche benötigen - PdfiumViewer kann nur vorhandene PDFs öffnen und anzeigen.

IronPDF bietet eine native HTML-zu-PDF-Konvertierung über ChromePdfRenderer, die intern eine Chromium-Engine für die genaue Darstellung von HTML, CSS und JavaScript verwendet. Die Methode RenderHtmlAsPdf() konvertiert HTML-Strings direkt in PDF-Dokumente. IronPDF kann auch URLs mit RenderUrlAsPdf() und HTML-Dateien mit RenderHtmlFileAsPdf() rendern. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 3: Konvertierung von PDF in Bilder

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

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

Dies ist ein Bereich, in dem sich PdfiumViewer auszeichnet - die Umwandlung von PDF in Bilder ist seine Hauptstärke. Beide Bibliotheken bewältigen diese Aufgabe effektiv, aber mit unterschiedlichen Mustern.

PdfiumViewer verwendet document.Render(pageIndex, dpiX, dpiY, forPrinting) mit verschachtelten using Anweisungen zur ordnungsgemäßen Entsorgung. Sie müssen System.Drawing und System.Drawing.Imaging für das Enum ImageFormat importieren.

IronPDF verwendet pdf.ToBitmap(pageIndex), welches ein Bitmap-Array zurückgibt. Das Muster ist einfacher, ohne verschachtelte Entsorgungsanforderungen. Bei Stapelverarbeitungen gibt ToBitmap() ohne Parameter alle Seiten zurück. Alternativ können Sie RasterizeToImageFiles() für die direkte Dateiausgabe verwenden. Weitere Rendering-Optionen finden Sie in der PDF zu Bild Dokumentation.


Natives Entfernen von Abhängigkeiten

Einer der wichtigsten Vorteile der Migration von PdfiumViewer zu IronPDF ist der Wegfall der nativen Binärverwaltung.

Vor (PdfiumViewer) - Komplexe Bereitstellung

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

Nach (IronPDF) - Saubere Bereitstellung

MyApp/
├── bin/
│ ├── MyApp.dll
│ └── IronPDF.dll # Alles enthalten

Native binäre Referenzen entfernen

# 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

Kritische Hinweise zur Migration

Keine eingebaute Viewer-Steuerung

IronPDF ist Backend-orientiert und enthält keine visuelle PDF-Viewer-Steuerung:

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

Für Anzeigezwecke empfiehlt sich die Verwendung von Process.Start() zum Öffnen im Standard-PDF-Viewer, einem WebBrowser-Steuerelement mit dem PDF-Pfad oder Viewer-Steuerelementen von Drittanbietern wie Syncfusion, DevExpress oder Telerik.

Änderung der Methode zum Laden von Dokumenten

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

Methodenänderung speichern

// PdfiumViewer
document.Save(path)

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

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

Rendering-Methode ändern

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

Seitengröße Zugriff ändern

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

Zusammenfassung des Funktionsvergleichs

Feature PdfiumViewer IronPDF
PDF laden
Ins Bild rendern
Eingebauter Viewer
PDF ausdrucken
Text extrahieren
Aus HTML erstellen
Von URL erstellen
PDFs zusammenführen
PDFs teilen
Wasserzeichen hinzufügen
Kopf-/Fußzeilen
Formular ausfüllen
Passwortschutz
WinForms-Unterstützung
ASP.NET-Unterstützung
.NET Core-Unterstützung Beschränkt
Aktive Wartung Ungewiss

Migrations-Checkliste

Vor der Migration

  • Alle Verwendungen von PdfiumViewer im Quellcode identifizieren
  • WinForms-Auflistung mit dem PdfViewer-Steuerelement
  • Dokumentieren Sie die aktuellen DPI-Einstellungen für die Darstellung
  • Auf native Binärreferenzen prüfen
  • Nutzung der Druckfunktionen ermitteln
  • Strategie zur Ablösung der Planbetrachtersteuerung
  • IronPDF-Lizenzschlüssel erhalten

Paketänderungen

  • Entfernen Sie das NuGet Paket PdfiumViewer
  • Entfernen Sie das Paket PdfiumViewer.Native.x86.v8-xfa
  • Entfernen Sie das Paket PdfiumViewer.Native.x64.v8-xfa
  • Löschen Sie die nativen pdfium.dll-Binärdateien aus den Ordnern x86/ und x64/.
  • Installieren Sie das NuGet Paket IronPdf: dotnet add package IronPdf

Code-Änderungen

  • Lizenzschlüsselkonfiguration beim Start hinzufügen
  • Ersetzen Sie PdfDocument.Load() durch PdfDocument.FromFile()
  • Ersetzen Sie document.Save() durch pdf.SaveAs()
  • Ersetzen Sie document.Render() durch pdf.ToBitmap() oder RasterizeToImageFiles()
  • Ersetzen Sie document.PageSizes[i] durch pdf.Pages[i].Width/Height
  • Ersetzen Sie das PdfViewer-Steuerelement durch einen externen Viewer oder Process.Start().
  • Neue Funktionen hinzufügen (Textextraktion, HTML zu PDF usw.).

Nach der Migration

  • Test der Ausgabequalität des Renderings
  • Testdruckfunktion
  • Test auf den Zielplattformen
  • Neue Funktionen hinzufügen (HTML zu PDF, Zusammenführen, Wasserzeichen, Sicherheit)
  • Dokumentation aktualisieren

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an