Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

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

Przejście z Pdfium.NET naIronPDFprzenosi proces obsługi plików PDF w środowisku .NET z biblioteki skupionej na renderowaniu, z natywnymi zależnościami binarnymi, do kompleksowego rozwiązania PDF, które obsługuje tworzenie, edycję i renderowanie bez złożoności typowej dla konkretnej platformy. Niniejszy przewodnik przedstawia kompletną, krok po kroku ścieżkę migracji, która eliminuje natywne zarządzanie zależnościami, dodając jednocześnie funkcje, których Pdfium nie jest w stanie zapewnić.

Dlaczego warto przejść z Pdfium na IronPDF

Zrozumienie Pdfium.NET

Pdfium.NET to nakładka .NET dla biblioteki PDFium firmy Google, znanej ze swojej wydajności i szybkości renderowania dokumentów PDF. Stała się ona istotną biblioteką dla programistów zgłębiających zawiłości renderowania plików PDF w aplikacjach C#, zapewniając wierne odwzorowanie treści PDF w środowiskach .NET.

Jednak pomimo swoich możliwości w zakresie renderowania, możliwości Pdfium.NET w zakresie tworzenia i edycji dokumentów PDF są ograniczone. Jest przeznaczony głównie do aplikacji, które wymagają dokładnego wyświetlania treści PDF, kładąc mniejszy nacisk na modyfikowanie lub tworzenie nowych plików PDF.

Istotne ograniczenia Pdfium

  1. Skupienie wyłącznie na renderowaniu: Nie można tworzyć plików PDF z HTML, obrazów ani programowo. Możliwości Pdfium ograniczają się do przeglądania i renderowania plików PDF.

  2. Brak możliwości edycji plików PDF: Nie można łączyć, dzielić ani modyfikować treści plików PDF. Łączenie plików PDF nie jest obsługiwane natywnie — konieczne będzie użycie innej biblioteki, takiej jak iTextSharp lub PdfSharp.

  3. Natywne zależności binarne: Wymaga plików binarnych PDFium specyficznych dla danej platformy. Programiści muszą zarządzać natywnymi plikami binarnymi PDFium, co zwiększa złożoność procesu wdrażania i dystrybucji.

  4. Złożoność wdrożenia: Należy dołączyć i zarządzać natywnymi bibliotekami DLL dla każdej platformy wraz z folderami x86, x64 i runtime.

  5. Ograniczone wyodrębnianie tekstu: Podstawowe wyodrębnianie tekstu bez formatowania. Wyodrębnianie tekstu wymaga dodatkowej pracy z wykorzystaniem Pdfium.NET.

  6. Brak konwersji HTML do PDF: Nie można konwertować treści internetowych do formatu PDF. Konwersja HTML do PDF nie jest natywnie obsługiwana w Pdfium.NET.

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

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

  9. Brak obsługi formularzy: Nie można wypełniać ani odczytywać formularzy PDF.

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

Porównanie Pdfium i IronPDF

Aspekt Pdfium.NET IronPDF
Główny cel Renderowanie/wyświetlanie Kompletne rozwiązanie PDF
Wierność odwzorowania Wysokiej jakości renderowanie Wysoki, zwłaszcza w przypadku HTML/CSS/JS
Tworzenie plików PDF ✓(HTML, URL, obrazy)
Manipulacja plikami PDF ✓(scal, podziel, edytuj)
HTML do PDF ✓(silnik Chromium)
Znaki wodne
Nagłówki/stopki
Wypełnianie formularzy
Bezpieczeństwo
Zależności natywne Wymagane Brak (w pełni zarządzane)
Wieloplatformowe Złożona konfiguracja Automatyczne
Łatwość wdrożenia Skomplikowane przez zależności natywne Łatwiejsze; less dependency complication

Dla zespołów planujących wdrożenie .NET 10 i C# 14 w latach 2025 i 2026,IronPDFzapewnia w pełni zarządzaną platformę, która eliminuje konieczność zarządzania natywnymi plikami binarnymi, jednocześnie oferując kompleksowe możliwości tworzenia i edycji plików PDF.


Zanim zaczniesz

Wymagania wstępne

  1. Środowisko .NET: .NET Framework 4.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

# Remove Pdfium packages
dotnet remove package Pdfium.NET
dotnet remove package Pdfium.Net.SDK
dotnet remove package PdfiumViewer

# Install IronPDF
dotnet add package IronPdf
# Remove Pdfium packages
dotnet remove package Pdfium.NET
dotnet remove package Pdfium.Net.SDK
dotnet remove package PdfiumViewer

# 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 użycie Pdfium

# Find Pdfium usage
grep -r "Pdfium\|PdfDocument\.Load\|\.Render\(" --include="*.cs" .

# Find native binary references
grep -r "pdfium\.dll\|pdfium\.so\|pdfium\.dylib" --include="*.csproj" --include="*.config" .

# Find platform-specific code
grep -r "#if.*64\|WIN32\|WIN64\|LINUX\|OSX" --include="*.cs" .
# Find Pdfium usage
grep -r "Pdfium\|PdfDocument\.Load\|\.Render\(" --include="*.cs" .

# Find native binary references
grep -r "pdfium\.dll\|pdfium\.so\|pdfium\.dylib" --include="*.csproj" --include="*.config" .

# Find platform-specific code
grep -r "#if.*64\|WIN32\|WIN64\|LINUX\|OSX" --include="*.cs" .
SHELL

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

// Pdfium.NET
using Pdfium;
using Pdfium.Net;
using PdfiumViewer;

// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
// Pdfium.NET
using Pdfium;
using Pdfium.Net;
using PdfiumViewer;

// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
Imports Pdfium
Imports Pdfium.Net
Imports PdfiumViewer

Imports IronPdf
Imports IronPdf.Rendering
Imports IronPdf.Editing
$vbLabelText   $csharpLabel

Mapowania klas podstawowych

Pdfium.NET IronPDF
PdfDocument PdfDocument
PdfPage PdfPage
PdfPageCollection PdfPageCollection
(niedostępne) ChromePdfRenderer
(niedostępne) HtmlHeaderFooter

Mapowania ładowania dokumentów

Pdfium.NET IronPDF
PdfDocument.Load(path) PdfDocument.FromFile(path)
PdfDocument.Load(stream) PdfDocument.FromStream(stream)
PdfDocument.Load(bytes) PdfDocument.FromBinaryData(bytes)
new PdfDocument(path) PdfDocument.FromFile(path)

Mapowanie właściwości dokumentu

Pdfium.NET IronPDF
document.PageCount document.PageCount
document.Pages document.Pages
document.Pages[index] document.Pages[index]
document.GetPageSize(index) document.Pages[index].Width/Height

Mapowania ekstrakcji tekstu

Pdfium.NET IronPDF
document.GetPdfText(pageIndex) document.Pages[index].Text
(pętla ręczna) document.ExtractAllText()
page.GetTextBounds() page.Text

Zapisywanie mapowań dokumentów

Pdfium.NET IronPDF
document.Save(path) document.SaveAs(path)
document.Save(stream) document.Stream
(niedostępne) document.BinaryData

Mapowania renderowania stron

Pdfium.NET IronPDF
page.Render(width, height) pdf.RasterizeToImageFiles(path, dpi)
page.Render(width, height, flags) Parametr DPI
document.Render(index, width, height) pdf.RasterizeToImageFiles()
page.RenderToScale(scale) DPI: 72 * scale

Nowe funkcje niedostępne w Pdfium

FunkcjaIronPDF Opis
ChromePdfRenderer.RenderHtmlAsPdf() Utwórz z HTML
ChromePdfRenderer.RenderUrlAsPdf() Utwórz z adresu URL
ChromePdfRenderer.RenderHtmlFileAsPdf() Utwórz z pliku HTML
PdfDocument.Merge() Łączenie plików PDF
pdf.CopyPages() Wyodrębnij strony
pdf.RemovePages() Usuń strony
pdf.InsertPdf() Wstaw plik PDF w miejscu
pdf.ApplyWatermark() Dodaj znaki wodne
pdf.AddHtmlHeaders() Dodaj nagłówki
pdf.AddHtmlFooters() Dodaj stopki
pdf.SecuritySettings Ochrona hasłem
pdf.SignWithDigitalSignature() Podpisy cyfrowe
pdf.Form Wypełnianie formularzy

Przykłady migracji kodu

Przykład 1: Pobieranie tekstu z pliku PDF

Przed (Pdfium):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        using (var document = PdfDocument.Load(pdfPath))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 0; i < document.PageCount; i++)
            {
                // Note: PdfiumViewer has limited text extraction capabilities
                // Text extraction requires additional work with Pdfium.NET
                string pageText = document.GetPdfText(i);
                text.AppendLine(pageText);
            }

            Console.WriteLine(text.ToString());
        }
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        using (var document = PdfDocument.Load(pdfPath))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 0; i < document.PageCount; i++)
            {
                // Note: PdfiumViewer has limited text extraction capabilities
                // Text extraction requires additional work with Pdfium.NET
                string pageText = document.GetPdfText(i);
                text.AppendLine(pageText);
            }

            Console.WriteLine(text.ToString());
        }
    }
}
Imports PdfiumViewer
Imports System
Imports System.IO
Imports System.Text

Module Program
    Sub Main()
        Dim pdfPath As String = "document.pdf"

        Using document = PdfDocument.Load(pdfPath)
            Dim text As New StringBuilder()

            For i As Integer = 0 To document.PageCount - 1
                ' Note: PdfiumViewer has limited text extraction capabilities
                ' Text extraction requires additional work with Pdfium.NET
                Dim pageText As String = document.GetPdfText(i)
                text.AppendLine(pageText)
            Next

            Console.WriteLine(text.ToString())
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        var pdf = PdfDocument.FromFile(pdfPath);
        string text = pdf.ExtractAllText();

        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";

        var pdf = PdfDocument.FromFile(pdfPath);
        string text = pdf.ExtractAllText();

        Console.WriteLine(text);
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdfPath As String = "document.pdf"

        Dim pdf = PdfDocument.FromFile(pdfPath)
        Dim text As String = pdf.ExtractAllText()

        Console.WriteLine(text)
    End Sub
End Class
$vbLabelText   $csharpLabel

Różnica w tym przypadku jest znacząca. Pdfium wymaga ręcznego przechodzenia przez każdą stronę z GetPdfText(pageIndex), tworzenia StringBuilder i zarządzania instrukcją using w celu prawidłowego usunięcia. W kodzie zaznaczono, że "PdfiumViewer ma ograniczone możliwości wyodrębniania tekstu" oraz że "wyodrębnianie tekstu wymaga dodatkowej pracy".

IronPDF upraszcza to do trzech wierszy: ładowanie za pomocą PdfDocument.FromFile(), wyodrębnianie za pomocą ExtractAllText() i wyjście. Metoda ExtractAllText() obsługuje wszystkie strony automatycznie, oferując bardziej zaawansowane możliwości ekstrakcji tekstu. Jeśli potrzebujesz wyodrębnienia na poziomie strony, możesz użyć pdf.Pages[index].Text. Dodatkowe opcje można znaleźć w dokumentacji dotyczącej ekstrakcji tekstu.

Przykład 2: Łączenie plików PDF

Przed (Pdfium):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;

// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        // PdfiumViewer is primarily for rendering/viewing
        // PDF merging is not natively supported
        // You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;

// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        // PdfiumViewer is primarily for rendering/viewing
        // PDF merging is not natively supported
        // You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
    }
}
Imports PdfiumViewer
Imports System
Imports System.IO
Imports System.Collections.Generic

' Note: PdfiumViewer does not have native PDF merging functionality
' You would need to use additional libraries or implement custom logic
Class Program
    Shared Sub Main()
        Dim pdfFiles As New List(Of String) From {
            "document1.pdf",
            "document2.pdf",
            "document3.pdf"
        }

        ' PdfiumViewer is primarily for rendering/viewing
        ' PDF merging is not natively supported
        ' You would need to use another library like iTextSharp or PdfSharp

        Console.WriteLine("PDF merging not natively supported in PdfiumViewer")
    End Sub
End Class
$vbLabelText   $csharpLabel

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        var pdf = PdfDocument.Merge(pdfFiles);
        pdf.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> pdfFiles = new List<string> 
        { 
            "document1.pdf", 
            "document2.pdf", 
            "document3.pdf" 
        };

        var pdf = PdfDocument.Merge(pdfFiles);
        pdf.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdfFiles As New List(Of String) From {
            "document1.pdf",
            "document2.pdf",
            "document3.pdf"
        }

        Dim pdf = PdfDocument.Merge(pdfFiles)
        pdf.SaveAs("merged.pdf")

        Console.WriteLine("PDFs merged successfully")
    End Sub
End Module
$vbLabelText   $csharpLabel

Ten przykład podkreśla fundamentalną lukę w funkcjonalności. Pdfium nie może łączyć plików PDF — kod wyraźnie stwierdza, że "łączenie plików PDF nie jest natywnie obsługiwane w PdfiumViewer" oraz "konieczne byłoby użycie innej biblioteki, takiej jak iTextSharp lub PdfSharp".

IronPDF zapewnia natywne scalanie za pomocą statycznej metody PdfDocument.Merge(), która bezpośrednio akceptuje listę ścieżek do plików. Wynikiem jest nowy plik PdfDocument, który zapisujesz za pomocą SaveAs(). Dowiedz się więcej o łączeniu i dzieleniu plików PDF.

Przykład 3: Konwersja HTML do PDF

Przed (Pdfium):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;

// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
    static void Main()
    {
        // Pdfium.NET does not have native HTML to PDF conversion
        // You would need to use a separate library to convert HTML to PDF
        // then use Pdfium for manipulation
        string htmlContent = "<h1>Hello World</h1>";

        // This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;

// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
    static void Main()
    {
        // Pdfium.NET does not have native HTML to PDF conversion
        // You would need to use a separate library to convert HTML to PDF
        // then use Pdfium for manipulation
        string htmlContent = "<h1>Hello World</h1>";

        // This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
    }
}
Imports PdfiumViewer
Imports System.IO
Imports System.Drawing.Printing

' Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
' For HTML to PDF with Pdfium.NET, you would need additional libraries
' This example shows a limitation of Pdfium.NET
Class Program
    Shared Sub Main()
        ' Pdfium.NET does not have native HTML to PDF conversion
        ' You would need to use a separate library to convert HTML to PDF
        ' then use Pdfium for manipulation
        Dim htmlContent As String = "<h1>Hello World</h1>"

        ' This functionality is not directly available in Pdfium.NET
        Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET")
    End Sub
End Class
$vbLabelText   $csharpLabel

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<h1>Hello World</h1>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<h1>Hello World</h1>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim htmlContent As String = "<h1>Hello World</h1>"

        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

Ten przykład ilustruje najbardziej znaczącą różnicę w możliwościach. Pdfium wyraźnie stwierdza, że "konwersja HTML do PDF nie jest natywnie obsługiwana w Pdfium.NET" oraz "do konwersji HTML do PDF konieczne jest użycie oddzielnej biblioteki".

IronPDF zapewnia natywną konwersję HTML do PDF za pomocą ChromePdfRenderer, który wewnętrznie wykorzystuje 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.


Usuwanie zależności natywnych

Jedną z najważniejszych korzyści wynikających z migracji z Pdfium doIronPDFjest wyeliminowanie zarządzania natywnymi plikami binarnymi.

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

MyApp/
├── bin/
│   ├── MyApp.dll
│   ├── Pdfium.NET.dll
│   ├── x86/
│   │   └── pdfium.dll
│   └── x64/
│       └── pdfium.dll
├── runtimes/
│   ├── win-x86/native/
│   │   └── pdfium.dll
│   └── win-x64/native/
│       └── 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
# Delete any <Content Include="pdfium.dll" /> entries
# Delete any <None Include="x86/pdfium.dll" /> entries
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/

# Remove from .csproj
# Delete any <Content Include="pdfium.dll" /> entries
# Delete any <None Include="x86/pdfium.dll" /> entries
SHELL

Ważne uwagi dotyczące migracji

Konwersja skali na DPI

Pdfium wykorzystuje współczynniki skalowania;IronPDFwykorzystuje DPI:

// Formula:IronPDFDPI = 72 × Pdfium scale
// Pdfium scale 2.0 →IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
// Formula:IronPDFDPI = 72 × Pdfium scale
// Pdfium scale 2.0 →IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
' Formula: IronPDFDPI = 72 × Pdfium scale
' Pdfium scale 2.0 → IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI:=144)
$vbLabelText   $csharpLabel

Zmiana metody ładowania dokumentów

// Pdfium
PdfDocument.Load(path)

// IronPDF
PdfDocument.FromFile(path)
// Pdfium
PdfDocument.Load(path)

// IronPDF
PdfDocument.FromFile(path)
$vbLabelText   $csharpLabel

Zmiana metody zapisywania

// Pdfium
document.Save(path)

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

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

Uproszczenie wzorca usuwania

// Pdfium: Wymagane explicit disposal
using (var document = PdfDocument.Load(path))
using (var page = document.Pages[0])
using (var bitmap = page.Render(1024, 768))
{
    bitmap.Save("output.png");
}

// IronPDF: Simplified
var pdf = PdfDocument.FromFile(path);
pdf.RasterizeToImageFiles("output.png");
// Pdfium: Wymagane explicit disposal
using (var document = PdfDocument.Load(path))
using (var page = document.Pages[0])
using (var bitmap = page.Render(1024, 768))
{
    bitmap.Save("output.png");
}

// IronPDF: Simplified
var pdf = PdfDocument.FromFile(path);
pdf.RasterizeToImageFiles("output.png");
Imports PdfiumViewer

' Pdfium: Wymagane explicit disposal
Using document = PdfDocument.Load(path)
    Using page = document.Pages(0)
        Using bitmap = page.Render(1024, 768)
            bitmap.Save("output.png")
        End Using
    End Using
End Using

' IronPDF: Simplified
Dim pdf = PdfDocument.FromFile(path)
pdf.RasterizeToImageFiles("output.png")
$vbLabelText   $csharpLabel

Usunięcie kodu specyficznego dla platformy

// Pdfium: Wymagane platform detection
#if WIN64
    // Load x64 pdfium.dll
#else
    // Load x86 pdfium.dll
#endif

// IronPDF: Remove all platform-specific code
// Just use the API directly
// Pdfium: Wymagane platform detection
#if WIN64
    // Load x64 pdfium.dll
#else
    // Load x86 pdfium.dll
#endif

// IronPDF: Remove all platform-specific code
// Just use the API directly
$vbLabelText   $csharpLabel

Podsumowanie porównania funkcji

Funkcja Pdfium.NET IronPDF
Pobierz plik PDF
Renderuj do obrazu
Wyodrębnij tekst ✓(podstawowe) ✓(zaawansowane)
Informacje o stronie
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
Podpisy cyfrowe
Ochrona hasłem
Zależności natywne Wymagane None
Wieloplatformowe Złożone Automatyczne
Zarządzanie pamięcią Ręczne usuwanie Uproszczone

Lista kontrolna migracji

Przed migracją

  • Zidentyfikuj wszystkie wystąpienia Pdfium w kodzie źródłowym
  • Dokumentacja aktualnych wymiarów/skal renderowania
  • Wymień lokalizacje plików binarnych w projekcie
  • Sprawdź kod ładowania specyficzny dla platformy
  • Określ potrzeby związane z tworzeniem plików PDF (obecnie używasz oddzielnych narzędzi?)
  • Przejrzyj wzorce usuwania w celu konwersji
  • Uzyskaj klucz licencyjny IronPDF

Zmiany w pakiecie

  • Usuń pakiety NuGet Pdfium.NET, Pdfium.Net.SDK, PdfiumViewer
  • Usuń natywne pliki binarne pdfium.dll z folderów x86/, x64/ i runtimes/
  • Usuń kompilację warunkową specyficzną dla platformy
  • Zaktualizuj plik .csproj, aby usunąć odwołania do natywnych plików binarnych
  • 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 pętle document.GetPdfText(i) przez pdf.ExtractAllText()
  • Przelicz współczynniki skali na wartości DPI (DPI = 72 × skala)
  • Uprość wzorce usuwania (usuń zagnieżdżone instrukcje using)
  • Usuń kod specyficzny dla platformy

Po migracji

  • Sprawdź jakość renderowania
  • Porównaj wyniki ekstrakcji tekstu
  • Testowanie wdrożenia na wielu platformach
  • Dodaj nowe funkcje (konwersja 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