Jak przeprowadzić migrację z PdfPig do IronPDF w języku C#
Przejście zPdfPignaIronPDFrozszerza możliwości obsługi plików PDF z biblioteki przeznaczonej wyłącznie do odczytu na kompleksowe rozwiązanie PDF, które obsługuje tworzenie, edycję, wyodrębnianie tekstu oraz funkcje bezpieczeństwa. Niniejszy przewodnik zawiera kompletną, szczegółową ścieżkę migracji, która pozwala zachować istniejące procesy ekstrakcji danych, dodając jednocześnie funkcje generowania plików PDF, konwersji HTML, edycji dokumentów oraz zabezpieczeń, których nie oferuje PdfPig.
Dlaczego warto przejść zPdfPigna IronPDF
Zrozumienie PdfPig
PdfPig to biblioteka typu open source do odczytu i ekstrakcji plików PDF, zaprojektowana specjalnie dla języka C#. Jako część renomowanego projektu Apache PDFBox, biblioteka ta umożliwia programistom dostęp do treści plików PDF z niezwykłą precyzją. ChociażPdfPigwyróżnia się możliwościami ekstrakcji, jego zakres jest w dużej mierze ograniczony w porównaniu z bardziej wszechstronnymi bibliotekami dostępnymi na rynku.
PdfPig zapewnia programistom niezawodne narzędzia do wyodrębniania tekstu, obrazów, danych z formularzy i metadanych z plików PDF. Dzięki temu jest to odpowiedni wybór dla aplikacji skupiających się przede wszystkim na analizie dokumentów i eksploracji danych. Jednak możliwościPdfPigsą zasadniczo ograniczone do analizowania istniejących dokumentów.
Ograniczenie do trybu tylko do odczytu
PdfPig skupia się wyłącznie na odczytywaniu plików PDF. Gdy Twoja aplikacja wymaga funkcji wykraczających poza wyodrębnianie danych,PdfPignie będzie w stanie pomóc:
-
Brak generowania plików PDF: Nie można tworzyć plików PDF z HTML, adresów URL ani programowo.
-
Brak konwersji HTML do PDF:PdfPigto biblioteka do odczytu/analizy plików PDF, a nie biblioteka do generowania plików PDF. Do konwersji HTML na PDF trzeba by użyć innej biblioteki.
-
Brak możliwości manipulacji dokumentami: nie można łączyć, dzielić ani modyfikować plików PDF.
-
Brak funkcji bezpieczeństwa: Nie można dodawać haseł, szyfrowania ani podpisów cyfrowych.
-
Brak znaków wodnych/stempli: Nie można dodawać nakładek wizualnych do istniejących dokumentów.
- Brak możliwości wypełniania formularzy: Nie można programowo wypełniać formularzy PDF.
PorównaniePdfPigi IronPDF
| Funkcja | PdfPig | IronPDF |
|---|---|---|
| Licencja | Open Source (Apache 2.0) | Komercjalne |
| Odczytywanie/wyodrębnianie plików PDF | Doskonałe | Doskonałe |
| Generowanie plików PDF | Ograniczone | Kompleksowe |
| HTML do PDF | Nieobsługiwane | Obsługiwane |
| Wyodrębnianie tekstu | Doskonałe | Doskonałe |
| Manipulacja plikami PDF | Nieobsługiwane | Łączenie, dzielenie, obracanie |
| Znaki wodne | Nieobsługiwane | Obsługiwane |
| Bezpieczeństwo/Szyfrowanie | Nieobsługiwane | Obsługiwane |
| Wsparcie i dokumentacja | Wsparcie społeczności | Dedykowane wsparcie |
| Indeksowanie stron | bazujący na 1 | bazujący na 0 |
IronPDF obsługuje pełen zestaw funkcji do tworzenia, odczytu, edycji i podpisywania plików PDF. Ta wszechstronność pozwala programistom zarządzać plikami PDF od początku do końca. Dla zespołów planujących wdrożenie .NET 10 i C# 14 w latach 2025 i 2026,IronPDFoferuje kompletne rozwiązanie do zarządzania cyklem życia plików PDF, które wykracza poza możliwości odczytu PdfPig.
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 PdfPig
dotnet remove package PdfPig
# Install IronPDF
dotnet add package IronPdf
# Remove PdfPig
dotnet remove package PdfPig
# Install IronPDF
dotnet add package IronPdf
Konfiguracja licencji
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Zidentyfikuj zastosowanie PdfPig
# FindPdfPigusage
grep -r "UglyToad\.PdfPig\|PdfDocument\.Open\|GetPages\(\)" --include="*.cs" .
# Find page index references (may need 1→0 conversion)
grep -r "GetPage(\|NumberOfPages" --include="*.cs" .
# FindPdfPigusage
grep -r "UglyToad\.PdfPig\|PdfDocument\.Open\|GetPages\(\)" --include="*.cs" .
# Find page index references (may need 1→0 conversion)
grep -r "GetPage(\|NumberOfPages" --include="*.cs" .
Kompletna dokumentacija API
Zmiany w przestrzeni nazw
// Before: PdfPig
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
using UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PdfPig
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
using UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
' Before: PdfPig
Imports UglyToad.PdfPig
Imports UglyToad.PdfPig.Content
Imports UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor
' After: IronPDF
Imports IronPdf
Imports IronPdf.Rendering
Mapowania ładowania dokumentów
| PdfPig | IronPDF |
|---|---|
PdfDocument.Open(path) |
PdfDocument.FromFile(path) |
PdfDocument.Open(bytes) |
PdfDocument.FromBinaryData(bytes) |
PdfDocument.Open(stream) |
PdfDocument.FromStream(stream) |
using (var doc = ...) |
var pdf = ... |
Mapowanie dostępu do stron i właściwości
| PdfPig | IronPDF |
|---|---|
document.NumberOfPages |
pdf.PageCount |
document.GetPages() |
pdf.Pages |
document.GetPage(1) |
pdf.Pages[0] |
Mapowania ekstrakcji tekstu
| PdfPig | IronPDF |
|---|---|
page.Text |
pdf.Pages[i].Text |
page.GetWords() |
pdf.ExtractTextFromPage(i) |
| (manual loop) | pdf.ExtractAllText() |
Mapowania dostępu do metadanych
| PdfPig | IronPDF |
|---|---|
document.Information.Title |
pdf.MetaData.Title |
document.Information.Author |
pdf.MetaData.Author |
document.Information.Subject |
pdf.MetaData.Subject |
document.Information.Creator |
pdf.MetaData.Creator |
document.Information.Producer |
pdf.MetaData.Producer |
Nowe funkcje niedostępne w PdfPig
| FunkcjaIronPDF | Opis |
|---|---|
renderer.RenderHtmlAsPdf(html) |
Konwersja HTML do PDF |
renderer.RenderUrlAsPdf(url) |
Konwersja adresów URL do formatu PDF |
PdfDocument.Merge(pdfs) |
Łączenie wielu plików PDF |
pdf.ApplyWatermark(html) |
Dodaj znaki wodne |
pdf.SecuritySettings.UserPassword |
Ochrona hasłem |
pdf.Sign(certificate) |
Podpisy cyfrowe |
Przykłady migracji kodu
Przykład 1: Pobieranie tekstu z pliku PDF
Przed (PdfPig):
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var text = new StringBuilder();
foreach (var page in document.GetPages())
{
text.AppendLine(page.Text);
}
Console.WriteLine(text.ToString());
}
}
}
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var text = new StringBuilder();
foreach (var page in document.GetPages())
{
text.AppendLine(page.Text);
}
Console.WriteLine(text.ToString());
}
}
}
Imports UglyToad.PdfPig
Imports System
Imports System.Text
Class Program
Shared Sub Main()
Using document = PdfDocument.Open("input.pdf")
Dim text = New StringBuilder()
For Each page In document.GetPages()
text.AppendLine(page.Text)
Next
Console.WriteLine(text.ToString())
End Using
End Sub
End Class
Po (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
End Sub
End Class
Zarówno PdfPig, jak iIronPDFzapewniają doskonałe możliwości ekstrakcji tekstu. Kluczowa różnica polega na wzorcu kodu.PdfPigwymaga instrukcji using z PdfDocument.Open(), ręczne przechodzenie przez strony za pomocą GetPages() oraz StringBuilder do gromadzenia tekstu z każdej właściwości page.Text.
IronPDF upraszcza to do jednego wywołania: PdfDocument.FromFile() ładuje dokument, a ExtractAllText() zwraca całą zawartość tekstową za jednym razem. Nie jest wymagane użycie instrukcji using, nie należy stosować ręcznych iteracji ani klasy StringBuilder. Dodatkowe opcje można znaleźć w dokumentacji dotyczącej ekstrakcji tekstu.
Przykład 2: Konwersja HTML do PDF
Przed (PdfPig):
PdfPig nie obsługuje konwersji HTML do PDF.PdfPigto biblioteka do odczytu/analizy plików PDF, a nie biblioteka do generowania plików PDF. Do konwersji HTML na PDF trzeba by użyć innej biblioteki.
Po (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>")
pdf.SaveAs("output.pdf")
End Sub
End Class
Ten przykład podkreśla najbardziej znaczącą lukę w możliwościach.PdfPigwyraźnie stwierdza, że "nie obsługuje konwersji HTML do PDF" i "jest biblioteką do odczytu/analizy plików PDF, a nie biblioteką do generowania plików PDF". Jeśli chcesz tworzyć pliki PDF z HTML za pomocą PdfPig, musisz użyć zupełnie innej biblioteki.
IronPDF zapewnia natywną konwersję HTML do PDF za pomocą ChromePdfRenderer. Metoda RenderHtmlAsPdf() akceptuje ciągi znaków HTML i konwertuje je na dokumenty PDF, wykorzystując wewnętrznie silnik Chromium w celu dokładnego renderowania HTML, CSS i JavaScript. Wynikowy plik PdfDocument można zapisać za pomocą SaveAs() lub poddać dalszej obróbce przed zapisaniem. Kompleksowe przykłady można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.
Przykład 3: Odczytywanie metadanych plików PDF
Przed (PdfPig):
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var info = document.Information;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
}
}
}
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var info = document.Information;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
}
}
}
Imports UglyToad.PdfPig
Imports System
Class Program
Shared Sub Main()
Using document = PdfDocument.Open("input.pdf")
Dim info = document.Information
Console.WriteLine($"Title: {info.Title}")
Console.WriteLine($"Author: {info.Author}")
Console.WriteLine($"Subject: {info.Subject}")
Console.WriteLine($"Creator: {info.Creator}")
Console.WriteLine($"Producer: {info.Producer}")
Console.WriteLine($"Number of Pages: {document.NumberOfPages}")
End Using
End Sub
End Class
Po (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var info = pdf.MetaData;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {pdf.PageCount}");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var info = pdf.MetaData;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {pdf.PageCount}");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim info = pdf.MetaData
Console.WriteLine($"Title: {info.Title}")
Console.WriteLine($"Author: {info.Author}")
Console.WriteLine($"Subject: {info.Subject}")
Console.WriteLine($"Creator: {info.Creator}")
Console.WriteLine($"Producer: {info.Producer}")
Console.WriteLine($"Number of Pages: {pdf.PageCount}")
End Sub
End Class
Obie biblioteki zapewniają dostęp do metadanych przy użyciu niemal identycznych schematów.PdfPiguzyskuje dostęp do metadanych poprzez document.Information, a do liczby stron poprzez document.NumberOfPages.IronPDFużywa pdf.MetaData dla metadanych i pdf.PageCount dla liczby stron.
Migracja jest prosta: należy zastąpić PdfDocument.Open() przez PdfDocument.FromFile(), document.Information na pdf.MetaData oraz document.NumberOfPages na pdf.PageCount. Usuń opakowanie instrukcji using, ponieważIronPDFtego nie wymaga.
Ważne uwagi dotyczące migracji
Zmiana indeksowania stron
PdfPig stosuje indeksowanie oparte na 1;IronPDFstosuje indeksowanie od 0:
// PdfPig:bazujący na 1indexing
var firstPage = document.GetPage(1); // First page
// IronPDF:bazujący na 0indexing
var firstPage = pdf.Pages[0]; // First page
// Migration helper
int pdfPigIndex = 1;
int ironPdfIndex = pdfPigIndex - 1;
// PdfPig:bazujący na 1indexing
var firstPage = document.GetPage(1); // First page
// IronPDF:bazujący na 0indexing
var firstPage = pdf.Pages[0]; // First page
// Migration helper
int pdfPigIndex = 1;
int ironPdfIndex = pdfPigIndex - 1;
' PdfPig:bazujący na 1indexing
Dim firstPage = document.GetPage(1) ' First page
' IronPDF:bazujący na 0indexing
Dim firstPage = pdf.Pages(0) ' First page
' Migration helper
Dim pdfPigIndex As Integer = 1
Dim ironPdfIndex As Integer = pdfPigIndex - 1
Nie jest wymagane użycie instrukcji
// PdfPig: Requires using for disposal
using (var document = PdfDocument.Open("input.pdf"))
{
// ...
}
// IronPDF: No using required (but can use for cleanup)
var pdf = PdfDocument.FromFile("input.pdf");
// ...
// pdf.Dispose(); // Optional
// PdfPig: Requires using for disposal
using (var document = PdfDocument.Open("input.pdf"))
{
// ...
}
// IronPDF: No using required (but can use for cleanup)
var pdf = PdfDocument.FromFile("input.pdf");
// ...
// pdf.Dispose(); // Optional
Imports PdfPig
Imports IronPDF
Using document = PdfDocument.Open("input.pdf")
' ...
End Using
Dim pdf = PdfDocument.FromFile("input.pdf")
' ...
' pdf.Dispose() ' Optional
Zmiana w ładowaniu dokumentów
// PdfPig: PdfDocument.Open()
using (var document = PdfDocument.Open("input.pdf"))
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("input.pdf");
// PdfPig: PdfDocument.Open()
using (var document = PdfDocument.Open("input.pdf"))
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("input.pdf");
Imports PdfPig
Imports IronPDF
Using document = PdfDocument.Open("input.pdf")
End Using
Dim pdf = PdfDocument.FromFile("input.pdf")
Zmiana nazwy właściwości metadanych
// PdfPig: document.Information
var info = document.Information;
// IronPDF: pdf.MetaData
var info = pdf.MetaData;
// PdfPig: document.Information
var info = document.Information;
// IronPDF: pdf.MetaData
var info = pdf.MetaData;
' PdfPig: document.Information
Dim info = document.Information
' IronPDF: pdf.MetaData
Dim info = pdf.MetaData
Zmiana liczby stron
// PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}");
// IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}");
// PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}");
// IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}");
' PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}")
' IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}")
Nowe możliwości po migracji
Po migracji doIronPDFzyskujesz możliwości, którychPdfPignie jest w stanie zapewnić:
Łączenie plików PDF
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Znaki wodne
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>")
Ochrona hasłem
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
Podpisy cyfrowe
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "support@company.com",
SigningReason = "Document Approval"
};
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "support@company.com",
SigningReason = "Document Approval"
};
pdf.Sign(signature);
Dim signature As New PdfSignature("certificate.pfx", "password") With {
.SigningContact = "support@company.com",
.SigningReason = "Document Approval"
}
pdf.Sign(signature)
Podsumowanie porównania funkcji
| Funkcja | PdfPig | IronPDF |
|---|---|---|
| Ekstrakcja tekstu | ✓ | ✓ |
| Dostęp do metadanych | ✓ | ✓ |
| Wyodrębnianie obrazów | ✓ | ✓ |
| Tworzenie plików PDF | Ograniczone | ✓ |
| HTML do PDF | ✗ | ✓ |
| URL do pliku PDF | ✗ | ✓ |
| Łączenie plików PDF | ✗ | ✓ |
| Podział plików PDF | ✗ | ✓ |
| Znaki wodne | ✗ | ✓ |
| Wypełnianie formularzy | ✗ | ✓ |
| Ochrona hasłem | ✗ | ✓ |
| Podpisy cyfrowe | ✗ | ✓ |
| Dane dotyczące pozycji słów WORD | ✓ | ✗ |
Lista kontrolna migracji
Przed migracją
- Sporządź spis wszystkich miejsc użyciaPdfPigw kodzie źródłowym
- Sprawdź, czy potrzebujesz danych o pozycji na poziomie słów (rozważ podejście hybrydowe)
- Zwróć uwagę na wszystkie odniesienia do indeksu stron (trzeba zamienić liczbę 1 na 0)
- Zaplanuj przechowywanie klucza licencyjnegoIronPDF(zalecane są zmienne środowiskowe)
- Najpierw przetestuj z Licencją Trial IronPDF
Zmiany w pakiecie
- Usuń pakiet NuGet
PdfPig:dotnet remove package PdfPig - Zainstaluj pakiet NuGet
IronPdf:dotnet add package IronPdf
Zmiany w kodzie
- Zaktualizuj importy przestrzeni nazw (
using UglyToad.PdfPig;→using IronPdf;) - Zastąp
PdfDocument.Open()przezPdfDocument.FromFile() - Zastąp
document.Informationprzezpdf.MetaData - Zastąp
document.NumberOfPagesprzezpdf.PageCount - Zmień indeksy stron z systemu liczbowego zaczynającego się od 1 na system zaczynający się od 0
- Usuń instrukcje
using(opcjonalnie,IronPDFich nie wymaga) - Dodaj klucz licencyjnyIronPDFpodczas uruchamiania aplikacji
Po migracji
- Wynik wyodrębnienia tekstu testowego jest zgodny z oczekiwaniami
- Przetestuj wszystkie scenariusze generowania plików PDF
- W razie potrzeby dodaj nowe funkcje (scalanie, znaki wodne, zabezpieczenia)
- Zainstaluj zależności systemu Linux, jeśli wdrażasz na systemie Linux

