Jak przeprowadzić migrację z ExpertPdf do IronPDF w języku C#
ExpertPdf to komercyjny konwerter HTML-to-PDF dla .NET opublikowany przezOutside Software Inc.Najnowsza wersja na nuget.org to v20.1.0 (kwiecień 2025), więc suite wciąż jest aktywnie dystrybuowane — tarcia są w kształcie produktu, nie w porzuceniu.ExpertPdfopiera się na silniku Trident (IE) oraz silniku "WebKit2" dodanym w wersji v12.2; nowoczesny Chromium nie jest domyślny. Publiczne listy ComponentSource historycznie pokazywały HtmlToPdf Converter w cenie około 550 $–1 200 $ za poziom (zweryfikuj bezpośrednio z dostawcą). Zestaw narzędzi jest również podzielony na oddzielne pakiety NuGet — HtmlToPdf, MergePdf, PdfSecurity, SplitPdf, PdfToImage, PdfCreator — każdy zazwyczaj licencjonowany oddzielnie. Przewodnik ten zapewnia krok po kroku ścieżkę migracji zExpertPdfdo IronPDF, biblioteki PDF dla .NET z najnowszym renderowaniem Chromium, częstymi wydaniami i all-in-one pakietem.
Dlaczego warto przejść zExpertPdfna IronPDF?
ExpertPdf stwarza kilka wyzwań, które skłaniają zespoły programistów do rozważenia nowoczesnych alternatyw. Zrozumienie tych kwestii jest niezbędne do zaplanowania strategii migracji.
Problemy z ExpertPdf
-
Rzadka dokumentacja, powolne tempo: Referencje dokumentacji istnieją na html-to-pdf.net, ale samouczki, artykuły o funkcjach i wpisy changeloga są rzadkie. Notatki wydania dla wersji v20.1 (kwiecień 2025) wymieniają "poprawki błędów i ulepszania wydajności" — brak nagłówków z funkcjami.
-
Starsze kanały renderowania:ExpertPdfdostarcza silnik Trident (IE) plus silnik "WebKit2" dodany w wersji v12.2; nowoczesny Chromium nie jest domyślny. Funkcje CSS3 takie jak Flexbox, Grid i zmienne CSS renderują się najlepiej na silniku WebKit2 — zweryfikuj w odniesieniu do docelowego HTML przed migracją dużych zasobów.
-
Premium pricing dla starzejącego się stosu: Publiczne listy ComponentSource historycznie pokazywały HtmlToPdf Converter w cenie około 550 $–1 200 $ za poziom (zweryfikuj bezpośrednio z dostawcą — strona zamówienia na expertpdf.net była niedostępna w momencie pisania).
-
Rozproszony pakiet produktów:ExpertPdfsprzedaje oddzielne pakiety —
ExpertPdf.HtmlToPdf.NetCore/ExpertPdfHtmlToPdf,ExpertPdf.MergePdf,ExpertPdf.PdfSecurity,ExpertPdf.SplitPdf,ExpertPdf.PdfToImage,ExpertPdf.PdfCreator— każdy zazwyczaj licencjonowany oddzielnie. - Brak nowoczesnych natywnych celów .NET: Pakiety
.NetCoresą skierowane na .NET Standard 2.0 / .NET Framework 4.6.1, więc działają na .NET 5/6/7/8/9 — ale nie otrzymujesz natywnych wielo-celowych kompilacji, przyjaznych dla przycinania asemblii ani async-first API.
Porównanie architektur
| Aspekt | ExpertPdf | IronPDF |
|---|---|---|
| Dostawca | Outside Software Inc. | "Iron Software" |
| Najnowsza wersja (nuget.org) | v20.1.0 (Kwi 2025) | Stale aktualizowane |
| Dokumentacja | Tylko dokumentacja referencyjna, rzadka dokumentacja dla samouczków | Stale aktualizowane |
| Silnik renderujący | Trident (IE) + "WebKit2" (dodano v12.2) | Najnowsza wersja Chromium |
| Obsługa CSS | CSS3 najlepiej na WebKit2; częściowo na dziedzictwie | Pełna obsługa CSS3 (Flexbox, Grid) |
| Cena | ~550 $–1 200 $ (zweryfikuj z dostawcą) | Zobacz ironpdf.com/pricing |
| Model produktu | Fragmentowane (6+ pakietów NuGet) | Biblioteka typu "wszystko w jednym" |
| Nowoczesny .NET | .NET Standard 2.0 (działa na .NET 5-9) | .NET 6/7/8/9+ celowanie wielozadaniowe |
| Obsługa asynchroniczna | Ograniczone | Pełna obsługa async/await |
Kluczowe korzyści z migracji
- Nowoczesne renderowanie: najnowszy silnik Chromium zapewniający idealną jakość obrazu
- Pakiet "wszystko w jednym": generowanie plików PDF, scałanie, zabezpieczenia, wyodrębnianie w jednym pakiecie NuGet
- Aktywny rozwój: comiesięczne aktualizacje zawierające nowe funkcje i poprawki bezpieczeństwa
- Lepsza dokumentacja: kompleksowe samouczki i przykłady
- Prawdziwa wielopłatformowość: obsługa systemów Windows, Linux, macOS oraz Docker
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)
Audyt wykorzystania ExpertPdf
Uruchom te polecenia w katalogu rozwiązania, aby zidentyfikować wszystkie odwołania do ExpertPdf:
# Find allExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find allExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
Typowe pakietyExpertPdfdo szukania (zweryfikuj dokładną nazwę na nuget.org — zestaw używa niespójnego stylu):
ExpertPdfHtmlToPdf(.NET Framework) /ExpertPdf.HtmlToPdf.NetCore(.NET Core / 5-9) — HTML to PDFExpertPdf.MergePdf— łączenie PDFExpertPdf.PdfSecurity— szyfrowanie i hasłaExpertPdf.SplitPdf— dzielenie PDFExpertPdf.PdfToImage— konwersja PDF na obrazExpertPdf.PdfCreator— pełny SDK PDF (rysowanie, formularze, podpisy)
Zrozumienie zmiany wzorca podstawowego
ExpertPdf korzysta z PdfConverter z bezpośrednimi metodami zwracania tablicy bajtów.IronPDF używa ChromePdfRenderer zwracając obiekty PdfDocument, które zapewniają dodatkowe możliwości manipulacji przed zapisaniem.
Proces migracji krok po kroku
Krok 1: Zaktualizuj pakiety NuGet
Usuń wszystkie pakietyExpertPdfi zainstaluj IronPDF:
# Remove allExpertPdfpackages (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator
# Install IronPDF(includes all features)
dotnet add package IronPdf
# Remove allExpertPdfpackages (use whichever variants you have installed)
dotnet remove package ExpertPdfHtmlToPdf
dotnet remove package ExpertPdf.HtmlToPdf.NetCore
dotnet remove package ExpertPdf.MergePdf
dotnet remove package ExpertPdf.PdfSecurity
dotnet remove package ExpertPdf.SplitPdf
dotnet remove package ExpertPdf.PdfToImage
dotnet remove package ExpertPdf.PdfCreator
# Install IronPDF(includes all features)
dotnet add package IronPdf
Krok 2: Aktualizacja odniesień do przestrzeni nazw
Zastąp przestrzenie nazwExpertPdfna IronPDF:
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
Imports IronPdf
Krok 3: Skonfiguruj licencję
ExpertPdf stosuje licencjonowanie na konwerter.IronPDF korzysta z jednej globalnej 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"
Kompletna dokumentacja API
Mapowanie klas podstawowych
| KlasaExpertPdf | Odpowiednik IronPDF |
|---|---|
PdfConverter |
ChromePdfRenderer |
PdfDocumentOptions |
ChromePdfRenderOptions |
PdfHeaderOptions |
TextHeaderFooter lub HtmlHeaderFooter |
PdfFooterOptions |
TextHeaderFooter lub HtmlHeaderFooter |
PDFMerge |
PdfDocument.Merge() |
Mapowanie metod
| MetodaExpertPdf | Metoda IronPDF |
|---|---|
pdfConverter.GetPdfBytesFromHtmlString(html) |
renderer.RenderHtmlAsPdf(html).BinaryData |
pdfConverter.GetPdfBytesFromUrl(url) |
renderer.RenderUrlAsPdf(url).BinaryData |
pdfConverter.GetPdfBytesFromHtmlFile(path) |
renderer.RenderHtmlFileAsPdf(path).BinaryData |
pdfConverter.SavePdfFromUrlToFile(url, path) |
renderer.RenderUrlAsPdf(url).SaveAs(path) |
Mapowanie opcji
| OpcjaExpertPdf | IronPDF RenderingOptions |
|---|---|
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 |
PaperSize = PdfPaperSize.A4 |
PdfDocumentOptions.PdfPageOrientation = Portrait |
PaperOrientation = PdfPaperOrientation.Portrait |
PdfDocumentOptions.MarginTop |
MarginTop |
PdfHeaderOptions.HeaderText |
TextHeader.CenterText |
PdfFooterOptions.FooterText |
TextFooter.RightText |
Konwersja tokenów numeracji stron
ExpertPdf i IronPDF używają różnych składni symboli zastępczych dla numerów stron:
| ExpertPdf | IronPDF |
|---|---|
&p; |
{page} |
&P; |
{total-pages} |
Przykłady migracji kodu
Konwersja HTML do PDF
Podstawowa konwersja z HTML do PDF ilustruje przejście od modelu tablicy bajtów stosowanego w IronPdf do podejścia opartego na obiektach dokumentów stosowanego w IronPDF.
Wdrożenie ExpertPdf:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Convert HTML string to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes)
Console.WriteLine("PDF created successfully!")
End Sub
End Module
Wdrożenie IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF from HTML string
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
Podejście IronPDF zwraca obiekt PdfDocument, umożliwiający dodatkową manipulację (łączenie, watermarking, zabezpieczenia) przed zapisaniem. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą konwersji HTML do PDF.
URL do pliku PDF z ustawieniami strony
Wdrożenie ExpertPdf:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait
' Convert URL to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromUrl("https://www.example.com")
' Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes)
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()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
' Save to file
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
IronPDF's RenderingOptions zapewnia bezpośredni dostęp do właściwości konfiguracji strony. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą konwersji URL na PDF.
Nagłówki i stopki z numerami stron
Ten przykład demonstruje istotną różnicę w konfiguracji nagłówka/stopki—ExpertPdf używa oddzielnych klas PdfHeaderOptions i PdfFooterOptions z tokenami &P;, podczas gdy IronPDF używa TextHeaderFooter z zastępcami {total-pages}.
Wdrożenie ExpertPdf:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = True
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header"
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center
' Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = True
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;"
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right
' Convert HTML file to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlFile("input.html")
' Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes)
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
Wdrożenie IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Configure header
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Document Header",
.DrawDividerLine = True
}
' Configure footer with page numbers
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True
}
' Convert HTML file to PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
' Save to file
pdf.SaveAs("output-with-header-footer.pdf")
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
IronPDF's TextHeaderFooter zapewnia właściwości LeftText, CenterText, i RightText z opcjonalnymi liniami podziału. Dla nagłówków opartych na HTML, użyj HtmlHeaderFooter. Aby uzyskać więcej opcji, zapoznaj się z dokumentacją dotyczącą nagłówków i stopek.
Ważne uwagi dotyczące migracji
Lokalizacja klucza licencyjnego
ExpertPdf stosuje licencjonowanie na konwerter.IronPDF korzysta z jednej globalnej licencji, ustalanej jednorazowo podczas uruchamiania:
//ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
//ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
//IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
'ExpertPdf- per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"
'IronPDF- global, set once
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Konwersja tokenów numeracji stron
Zastąp tokenyExpertPdfsymbolami zastępczymi IronPDF:
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
Konsolidacja fragmentarycznych pakietów
Oddzielne pakietyExpertPdf(PDFMerge, PDFSecurity, PDFSplit, PdfToImage) są zawarte w jednym pakiecie IronPDF:
//ExpertPdf- requires separate ExpertPdf.MergePdf package
PDFMerge merger = new PDFMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
//ExpertPdf- requires separate ExpertPdf.MergePdf package
PDFMerge merger = new PDFMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
//IronPDF- included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
' ExpertPdf- requires separate ExpertPdf.MergePdf package
Dim merger As New PDFMerge()
merger.AppendPDFFile("file1.pdf")
merger.AppendPDFFile("file2.pdf")
merger.SaveMergedPDFToFile("merged.pdf")
' IronPDF- included in main package
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Aby uzyskać więcej opcji łączenia, zapoznaj się z dokumentacją dotyczącą łączenia plików PDF.
Niestandardowe rozmiary stron
ExpertPdf wykorzystuje punkty.IronPDF używa milimetrów. Konwertuj: points / 72 * 25.4 = mm
Lista kontrolna po migracji
Po zakończeniu migracji kodu sprawdź, czy:
- Wizualne porównanie wygenerowanych plików PDF
- Sprawdź nagłówki/stopki i numery stron
- Sprawdź ustawienia bezpieczeństwa/szyfrowania
- Sprawdzanie poprawności operacji scałania
- Sprawdź niestandardowe rozmiary stron
- Testy porównawcze wydajności
- Testowanie wielopłatformowe
- Usuń pliki licencji ExpertPdf
- Aktualizacja dokumentacji
Dodatkowe zasoby
- Dokumentacja IronPDF
- Samouczki dotyczące konwersji HTML do PDF
- Dokumentacja API
- Pakiet NuGet
- Opcje licencyjne
Migracja zExpertPdfdo IronPDF zastępuje rzadka dokumentację, dziedzictwo kanałów renderowania i fragmentowane licencjonowanie produktu aktywnie utrzymywaną biblioteką na najnowszym silniku Chromium — utrzymując generowanie PDF zgodnie z obecnymi standardami webowymi i nowoczesnymi celami .NET.

