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
-
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.
-
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.
-
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.
-
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.
-
Ograniczone wyodrębnianie tekstu: Podstawowe wyodrębnianie tekstu bez formatowania. Wyodrębnianie tekstu wymaga dodatkowej pracy z wykorzystaniem Pdfium.NET.
-
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.
-
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 obsługi formularzy: Nie można wypełniać ani odczytywać formularzy PDF.
- 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
- Środowisko .NET: .NET Framework 4.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
# 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
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 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" .
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
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
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
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
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
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
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
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
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)
Zmiana metody ładowania dokumentów
// Pdfium
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
// Pdfium
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
Zmiana metody zapisywania
// Pdfium
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// Pdfium
document.Save(path)
// IronPDF
pdf.SaveAs(path)
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")
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
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()przezPdfDocument.FromFile() - Zastąp
document.Save()przezpdf.SaveAs() - Zastąp pętle
document.GetPdfText(i)przezpdf.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

