Jak przeprowadzić migrację z EO.PDF do IronPDF w języku C#
EO.PDF stwarza kilka wyzwań architektonicznych, które skłaniają zespoły programistów do rozważania alternatywnych rozwiązań. Zrozumienie tych kwestii jest niezbędne do zaplanowania strategii migracji.
Problemy z plikiem EO.PDF
-
Ogromny rozmiar pakietu wynoszący 126 MB: EO.PDF zawiera własny silnik Chromium, co skutkuje rozmiarem instalacji wynoszącym 126 MB. Powoduje to powiększanie obrazów Docker, spowolnienie procesów CI/CD oraz wzrost kosztów infrastruktury.
-
Dziedzictwo starej architektury: EO.PDF został pierwotnie zbudowany na silniku renderującym przeglądarki Internet Explorer przed migracją do Chromium. To dziedzictwo powoduje problemy z kompatybilnością z czasów IE, dług techniczny w projekcie API oraz niespójne zachowanie między wersjami.
-
Projekt zorientowany na system Windows: Pomimo marketingowego hasła "wieloplatformowy", obsługa systemów Linux i macOS przez EO.PDF jest ograniczona. Wielu programistów zgłasza problemy z wdrożeniami innymi niż Windows.
-
Statyczne opcje globalne: EO.PDF używa statycznego
HtmlToPdf.Optionsdo konfiguracji, co nie jest bezpieczne dla wątków i stanowi problem w aplikacjach internetowych obsługujących wielu użytkowników. - 799 USD za licencję: Przy cenie 799 USD za licencję programisty EO.PDF jest drogi w porównaniu z alternatywnymi rozwiązaniami oferującymi podobną lub lepszą funkcjonalność.
Porównanie architektur
| Aspekt | EO.Pdf | IronPDF |
|---|---|---|
| Rozmiar pakietu | 126 MB | Zoptymalizowane (~50 MB) |
| Kwestie związane z dziedzictwem | Bagaż migracji IE | Przejrzysty, nowoczesny kod źródłowy |
| Obsługa platform | Skupione na systemie Windows | Prawdziwa wieloplatformowość |
| Konfiguracja | Statyczne/globalne (niezabezpieczone przed współbieżnością) | Oparte na instancjach, bezpieczne dla wątków |
| Projektowanie API | Mieszane (HtmlToPdf + ACM) | Jednolity, spójny |
| Dokumentacja | Ograniczone | Kompleksowe samouczki |
| Nowoczesny .NET | .NET Standard | .NET 6/7/8/9+ natywne |
| Obsługa asynchroniczna | Ograniczone | Pełna obsługa async/await |
Kluczowe korzyści z migracji
- O 50% mniejsze obciążenie: zoptymalizowane opakowanie Chromium firmy IronPDF
- Prawdziwa wieloplatformowość: działa identycznie w systemach Windows, Linux, macOS i Docker
- Konfiguracja bezpieczna dla wątków: opcje renderera oparte na instancjach
- Nowoczesne API: spójne, intuicyjne nazwy metod
- Lepsza dokumentacja: obszerne samouczki i przykłady
Przygotowania przed migracją
Wymagania wstępne
Upewnij się, że Twoje środowisko spełnia następujące wymagania:
- .NET Framework 4.6.2+ lub .NET Core 3.1 / .NET 5-9
- Visual Studio 2019+ lub VS Code z rozszerzeniem C#
- Dostęp do menedżera pakietów NuGet
- Klucz licencyjnyIronPDF(bezpłatna wersja próbna dostępna na stronie ironpdf.com)
Sprawdź użycie pliku EO.PDF
Uruchom te polecenia w katalogu rozwiązania, aby zidentyfikować wszystkie odwołania do plików EO.PDF:
# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
Typowe przestrzenie nazw EO.PDF, na które należy zwrócić uwagę:
EO.Pdf- Core HTML do PDFEO.Pdf.Acm- Advanced Content Model (ACM)EO.Pdf.Contents- Manipulacja treścią na niskim poziomieEO.Pdf.Drawing- Operacje graficzne
Zrozumienie zmiany wzorca podstawowego
Najważniejszą różnicą architektoniczną między EO.PDF aIronPDFjest zakres konfiguracji. EO.PDF wykorzystuje metody statyczne z opcjami globalnymi, które mają wpływ na wszystkie konwersje — jest to wzorzec powodujący problemy z bezpieczeństwem wątków w aplikacjach internetowych.IronPDFwykorzystuje renderery oparte na instancjach z opcjami lokalnymi, co zapewnia izolację każdej konwersji.
Proces migracji krok po kroku
Krok 1: Zaktualizuj pakiety NuGet
Usuń EO.Pdf i zainstaluj IronPDF:
# Remove EO.Pdf
dotnet remove package EO.Pdf
# Install IronPDF
dotnet add package IronPdf
# Remove EO.Pdf
dotnet remove package EO.Pdf
# Install IronPDF
dotnet add package IronPdf
Krok 2: Aktualizacja odniesień do przestrzeni nazw
Zastąp przestrzenie nazw EO.PDF przez IronPDF:
// Remove these
using EO.Pdf;
using EO.Pdf.Acm;
// Add this
using IronPdf;
// Remove these
using EO.Pdf;
using EO.Pdf.Acm;
// Add this
using IronPdf;
Imports IronPdf
Krok 3: Skonfiguruj licencję
// 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"
Kompletna dokumentacja API
Mapowanie klas podstawowych
| Klasa EO.PDF | OdpowiednikIronPDF |
|---|---|
HtmlToPdf |
ChromePdfRenderer |
PdfDocument |
PdfDocument |
HtmlToPdfOptions |
ChromePdfRenderOptions |
AcmRender |
Nie jest potrzebne |
AcmText |
HTML <span>, <p> |
AcmBlock |
HTML <div> |
Mapowanie metod
| Metoda EO.PDF | MetodaIronPDF |
|---|---|
HtmlToPdf.ConvertHtml(html, path) |
renderer.RenderHtmlAsPdf(html) następnie SaveAs(path) |
HtmlToPdf.ConvertUrl(url, path) |
renderer.RenderUrlAsPdf(url) następnie SaveAs(path) |
PdfDocument.Save(path) |
pdf.SaveAs(path) |
new PdfDocument(path) |
PdfDocument.FromFile(path) |
doc.Append(other) |
PdfDocument.Merge(doc1, doc2) |
Mapowanie opcji
| Opcja EO.PDF | IronPDF RenderingOptions |
|---|---|
Options.PageSize = PdfPageSizes.A4 |
PaperSize = PdfPaperSize.A4 |
Options.OutputArea (RectangleF) |
MarginTop, MarginBottom itp. |
Przykłady migracji kodu
Konwersja HTML do PDF
Podstawowa konwersja HTML do PDF ilustruje przejście od metod statycznych do renderowania opartego na instancjach.
Wdrożenie EO.PDF:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
HtmlToPdf.ConvertHtml(html, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
HtmlToPdf.ConvertHtml(html, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports EO.Pdf
Imports System
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>"
HtmlToPdf.ConvertHtml(html, "output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
Wdrożenie IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
Dwustopniowy schemat działaniaIronPDF(renderowanie, a następnie zapis) zapewnia dostęp do obiektu PdfDocument w celu dodatkowej obróbki przed zapisaniem. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą konwersji HTML do PDF.
Konwersja adresów URL do formatu PDF
Wdrożenie EO.PDF:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
HtmlToPdf.ConvertUrl(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
HtmlToPdf.ConvertUrl(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports EO.Pdf
Imports System
Module Program
Sub Main()
Dim url As String = "https://www.example.com"
HtmlToPdf.ConvertUrl(url, "webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Module
Wdrożenie IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim url As String = "https://www.example.com"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
RenderUrlAsPdf firmyIronPDFzapewnia pełną obsługę JavaScript oraz nowoczesne wsparcie dla CSS. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą konwersji URL na PDF.
Plik HTML z niestandardowymi ustawieniami
Ten przykład ilustruje kluczową różnicę w schematach konfiguracji — OutputArea w EO.PDF z podaniem wartości w calach w porównaniu z indywidualnymi właściwościami marginesów w milimetrach w IronPDF.
Wdrożenie EO.PDF:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfOptions options = new HtmlToPdfOptions();
options.PageSize = PdfPageSizes.A4;
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
Console.WriteLine("PDF with custom settings created.");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfOptions options = new HtmlToPdfOptions();
options.PageSize = PdfPageSizes.A4;
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
Console.WriteLine("PDF with custom settings created.");
}
}
Imports EO.Pdf
Imports System
Class Program
Shared Sub Main()
Dim options As New HtmlToPdfOptions()
options.PageSize = PdfPageSizes.A4
options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)
HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options)
Console.WriteLine("PDF with custom settings created.")
End Sub
End Class
Wdrożenie IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF with custom settings created.");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF with custom settings created.");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
Dim pdf = renderer.RenderHtmlFileAsPdf("C:/input.html")
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF with custom settings created.")
End Sub
End Class
Zwróć uwagę na przelicznik jednostek: EO.Pdf używa cali w OutputArea, podczas gdyIronPDFużywa milimetrów. Konwertuj za pomocą: inches × 25.4 = mm. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją opcji renderowania.
Łączenie wielu plików PDF
Łączenie plików PDF ilustruje różnicę między wzorcem pętli Append w EO.Pdf a statyczną metodą Merge w IronPDF.
Wdrożenie EO.PDF:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
PdfDocument doc1 = new PdfDocument("file1.pdf");
PdfDocument doc2 = new PdfDocument("file2.pdf");
PdfDocument mergedDoc = new PdfDocument();
mergedDoc.Append(doc1);
mergedDoc.Append(doc2);
mergedDoc.Save("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
PdfDocument doc1 = new PdfDocument("file1.pdf");
PdfDocument doc2 = new PdfDocument("file2.pdf");
PdfDocument mergedDoc = new PdfDocument();
mergedDoc.Append(doc1);
mergedDoc.Append(doc2);
mergedDoc.Save("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports EO.Pdf
Imports System
Class Program
Shared Sub Main()
Dim doc1 As New PdfDocument("file1.pdf")
Dim doc2 As New PdfDocument("file2.pdf")
Dim mergedDoc As New PdfDocument()
mergedDoc.Append(doc1)
mergedDoc.Append(doc2)
mergedDoc.Save("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Class
Wdrożenie IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
merged.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()
{
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
merged.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Module
Metoda statyczna Merge bibliotekiIronPDFprzyjmuje zbiór dokumentów, co ułatwia scalanie wielu dokumentów. Zwróć uwagę na zmianę z konstruktora (new PdfDocument(path)) na statyczną fabrykę (PdfDocument.FromFile(path)). Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą scalania plików PDF.
Ważne uwagi dotyczące migracji
Konwersja jednostek marginesu
EO.PDF używa cali w OutputArea.IronPDFużywa milimetrów. Konwertuj przy użyciu: inches × 25.4 = mm
// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
' EO.Pdf - 0.5 inch margins
options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)
' IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7
renderer.RenderingOptions.MarginBottom = 12.7
renderer.RenderingOptions.MarginLeft = 12.7
renderer.RenderingOptions.MarginRight = 12.7
Konfiguracja statyczna a konfiguracja oparta na instancjach
Zastąp wszystkie HtmlToPdf.Options.X przez renderer.RenderingOptions.X:
// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;
//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;
//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4
' IronPDF- instance options (thread-safe)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Migracja z ACM do HTML
W przypadku korzystania z zaawansowanego modelu treści EO.PDF (AcmRender, AcmText, AcmBlock), należy przenieść się do standardowego HTML/CSS:
// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));
//IronPDFHTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));
//IronPDFHTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
' EO.Pdf ACM approach
Dim acmContent As New AcmContent()
acmContent.Add(New AcmText("Sample Text"))
' IronPDFHTML approach
Dim html As String = "<div>Sample Text</div>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
Wzorzec zapisywania dwuetapowego
EO.PDF zapisuje přímo v ConvertHtml().IronPDFzwraca obiekt PdfDocument, a następnie wywołujesz SaveAs():
// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");
//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");
//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
' EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf")
' IronPDF- two steps (enables manipulation before save)
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Konstruktor do statycznej fabryki
Zastąp new PdfDocument(path) przez PdfDocument.FromFile(path):
// EO.Pdf
var doc = new PdfDocument("file.pdf");
// IronPDF
var doc = PdfDocument.FromFile("file.pdf");
// EO.Pdf
var doc = new PdfDocument("file.pdf");
// IronPDF
var doc = PdfDocument.FromFile("file.pdf");
' EO.Pdf
Dim doc = New PdfDocument("file.pdf")
' IronPDF
Dim doc = PdfDocument.FromFile("file.pdf")
Lista kontrolna po migracji
Po zakończeniu migracji kodu sprawdź, czy:
- Wizualne porównanie wygenerowanych plików PDF
- Sprawdź, czy nagłówki/stopki wyświetlają się poprawnie
- Sprawdź ustawienia bezpieczeństwa/szyfrowania
- Sprawdzanie poprawności operacji scalania
- Testy porównawcze wydajności
- Testowanie na różnych platformach (Windows, Linux, macOS)
- Usuń pliki licencji EO.PDF
- Aktualizacja dokumentacji
Zabezpieczenie infrastruktury PDF na przyszłość
W obliczu zbliżającej się premiery .NET 10 i wprowadzenia nowych funkcji językowych w C# 14, wybór biblioteki PDF z nowoczesną obsługą natywną .NET zapewnia długoterminową kompatybilność. ArchitekturaIronPDFoparta na instancjach i bezpieczna dla wątków jest zgodna ze współczesnymi wzorcami aplikacji internetowych — co jest szczególnie ważne w przypadku wielodostępnych aplikacji SaaS, gdzie statyczne opcje globalne EO.Pdf powodują problemy z współbieżnością.
Dodatkowe zasoby
- Dokumentacja IronPDF
- Samouczki dotyczące konwersji HTML do PDF
- Dokumentacja API
- Pakiet NuGet
- Opcje licencyjne
Przejście z EO.PDF naIronPDFeliminuje nadmierny rozmiar pakietu wynoszący 126 MB, bagaż z czasów IE oraz obawy dotyczące bezpieczeństwa wątków wynikające ze statycznych opcji globalnych. Przejście na konfigurację opartą na instancjach gwarantuje, że kod generujący pliki PDF działa niezawodnie w wielowątkowych aplikacjach internetowych, zapewniając jednocześnie prawdziwą obsługę wdrożeń międzyplatformowych.

