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
-
Powiązania Chromium: EO.Pdf (aktualna wersja NuGet 26.1.34, marzec 2026) dostarcza własny renderer oparty na Chromium, co zwiększa ślad instalacji w porównaniu z bibliotekami nie opartymi na Chromium i dodaje wagę do obrazów Docker i potoków CI/CD.
-
Dziedzictwo architektury: Konwerter HTML-to-PDF EO.Pdf został początkowo stworzony na wbudowanym silniku Internet Explorer / Trident, zanim projekt przeszedł na renderer oparty na Chromium. Przejście pozostawiło za sobą pewne dziwactwa API i różnice w zachowaniu między wersjami.
-
Tylko Windows na .NET Core: Pomimo marketingu jako "cross-platform", dokumentacja .NET Core mówi, że EO.Pdf wspiera .NET Core 3.1+ i .NET 5/6 tylko na Windows — Linux i macOS nie są oficjalnie wspierane.
-
Globalne opcje statyczne: Głównym punktem wyjścia HTML do PDF w EO.Pdf jest statyczna klasa
HtmlToPdfz dzielonymHtmlToPdf.Options. Zmiana tego globalnego stanu z wielu wątków nie jest bezpieczna i jest kłopotliwa w wielo-wynajmowych aplikacjach internetowych. - Płatna licencja komercyjna: EO.Pdf jest sprzedawane jako Single, 3-License Bundle, Corporate i Corporate Plus (brak trwałej darmowej wersji — tylko 30-dniowa wersja próbna z oznaczeniem wodnym). Dokładne ceny znajdują się na stronie zamówienia.
Porównanie architektur
| Aspekt | EO.Pdf | IronPDF |
|---|---|---|
| Renderer | Powszechny Chromium (przeszedł z IE/Trident) | Osadzone Chromium |
| Kwestie związane z dziedzictwem | bagaż migracji z IE/Trident | Zbudowany na Chromium od początku |
| Obsługa platform | Tylko Windows na .NET Core | Windows, Linux, macOS, Docker, Azure |
| Konfiguracja | Statyczna HtmlToPdf.Options (nie jest bezpieczna dla wątków) |
Oparta na instancji ChromePdfRenderer (bezpieczna dla wątków) |
| Projektowanie API | Mieszany (statyczny HtmlToPdf + model obiektowy ACM) |
Zunifikowany ChromePdfRenderer + HTML/CSS |
| Model licencji | Single / 3-License / Corporate / Corporate Plus (30-dniowy okres próbny) | Komercyjna per developer; Darmowa wersja próbna |
| Nowoczesny .NET | .NET Framework + .NET Core 3.1+ (Windows only) | .NET Framework, .NET 6/7/8/9 wieloplatformowo |
| Obsługa asynchroniczna | Ograniczone | Pełny RenderHtmlAsPdfAsync / RenderUrlAsPdfAsync |
Kluczowe korzyści z migracji
- Cross-platform na .NET Core / .NET 6+: Działa na Linux, macOS i Docker — nie tylko Windows
- Thread-Safe Configuration: Opcje renderera oparte na instancji zamiast statycznych globalnych
- Nowoczesny API: Spójne nazwy metod —
RenderHtmlAsPdf,RenderUrlAsPdf,PdfDocument.Merge - Pełne wsparcie asynchroniczne:
RenderHtmlAsPdfAsynciRenderUrlAsPdfAsyncdla nieblokujących potoków - Dokumentacja: Rozbudowane samouczki, poradniki i aktywna dokumentacja obiektowa
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 licencyjny IronPDF(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- Podstawowe HTML do PDFEO.Pdf.Acm- Zaawansowany Model Treści (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 a IronPDF jest 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.IronPDF wykorzystuje 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 | Odpowiednik IronPDF |
|---|---|
HtmlToPdf |
ChromePdfRenderer |
PdfDocument |
PdfDocument |
HtmlToPdfOptions |
ChromePdfRenderOptions |
AcmRender |
Nie jest potrzebne |
AcmText |
HTML <span>, <p> |
AcmBlock |
HTML |
Mapowanie metod
| Metoda EO.PDF | Metoda IronPDF |
|---|---|
HtmlToPdf.ConvertHtml(html, path) |
renderer.RenderHtmlAsPdf(html) potem SaveAs(path) |
HtmlToPdf.ConvertUrl(url, path) |
renderer.RenderUrlAsPdf(url) potem SaveAs(path) |
PdfDocument.Save(path) |
pdf.SaveAs(path) |
new PdfDocument(path) |
PdfDocument.FromFile(path) |
PdfDocument.Merge(doc1, doc2) (statyczny) |
PdfDocument.Merge(doc1, doc2) (statyczny) |
Mapowanie opcji
| Opcja EO.PDF | IronPDF RenderingOptions |
|---|---|
Options.PageSize = PdfPageSizes.A4 |
PaperSize = PdfPaperSize.A4 |
Options.OutputArea (RectangleF) |
MarginTop, MarginBottom, itd. |
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 wzorzec IronPDF(generowanie, a następnie zapis) zapewnia dostęp do obiektu PdfDocument do dodatkowej manipulacji przed zapisem. 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
RenderUrlAsPdfIronPDF zapewnia pełne wykonanie JavaScript i nowoczesne wsparcie CSS. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą konwersji URL na PDF.
Plik HTML z niestandardowymi ustawieniami
Ten przykład demonstruje kluczową różnicę we wzorcach konfiguracji — OutputArea EO.Pdf z calami versus indywidualne właściwości marginesów IronPDF w milimetrach.
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 konwersję jednostek: EO.Pdf używa cali w OutputArea, podczas gdy IronPDF wykorzystuje milimetry. Konwertuj przy użyciu: inches × 25.4 = mm. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją opcji renderowania.
Łączenie wielu plików PDF
Obie biblioteki udostępniają statyczny PdfDocument.Merge do łączenia dokumentów — EO.Pdf nie ma metody Append w instancji, więc wszelki kod używający doc.Append(other) jest nieprawidłowy i musi zostać przeniesiony do Merge.
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");
// EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
PdfDocument mergedDoc = PdfDocument.Merge(doc1, 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");
// EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
PdfDocument mergedDoc = PdfDocument.Merge(doc1, doc2);
mergedDoc.Save("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports EO.Pdf
Imports System
Module Program
Sub Main()
Dim doc1 As New PdfDocument("file1.pdf")
Dim doc2 As New PdfDocument("file2.pdf")
' EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
Dim mergedDoc As PdfDocument = PdfDocument.Merge(doc1, doc2)
mergedDoc.Save("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Module
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
Statyczny MergeIronPDF akceptuje listę dokumentów lub List. 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ą scałania plików PDF.
Ważne uwagi dotyczące migracji
Konwersja jednostek marginesu
EO.Pdf używa cali w OutputArea.IronPDF uż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
Zamień wszystkie HtmlToPdf.Options.X na 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
Jeśli używasz Zaawansowanego Modelu Treści (AcmRender, AcmText, AcmBlock) EO.Pdf, przejdź na standardowe HTML/CSS:
// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));
//IronPDF HTML 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"));
//IronPDF HTML 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"))
' IronPDF HTML 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 bezpośrednio w ConvertHtml().IronPDF zwraca obiekt PdfDocument, 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
Zamień new PdfDocument(path) na 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 scałania
- Testy porównawcze wydajności
- Testowanie na różnych platformach (Windows, Linux, macOS)
- Usuń pliki licencji EO.PDF
- Aktualizacja dokumentacji
Dodatkowe zasoby
- Dokumentacja IronPDF
- Samouczki dotyczące konwersji HTML do PDF
- Dokumentacja API
- Pakiet NuGet
- Opcje licencyjne
Migracja z EO.Pdf do IronPDF rozwiązuje bagaż z ery IE/Trident i obawy związane z bezpieczeństwem wątków globalnych opcji statycznych EO.Pdf. Przejście do konfiguracji opartej na instancji zapewnia, że twój kod generujący PDF działa niezawodnie przy jednoczesnym obciążeniu, a wsparcie IronPDF dla platform krzyżowych rozszerza wdrażanie poza Windows na Linux, macOS i Docker.

