Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

Jak przeprowadzić migrację z ExpertPdf do IronPDF w języku C#

ExpertPdf to komercyjny konwerter HTML na PDF dla platformy .NET, który od wielu lat służy programistom. Jednak ExpertPdf stoi przed poważnymi wyzwaniami w dzisiejszym szybko zmieniającym się świecie programowania: dokumentacja zamrożona od 2018 roku, zależność od starszej wersji Chrome, która nie obsługuje nowoczesnych funkcji CSS3, wysokie ceny wynoszące od 550 do 1200 dolarów za przestarzałą technologię oraz rozdrobniona Suite produktów wymagająca oddzielnych licencji na scalanie, zabezpieczenia i dzielenie. Ten kompleksowy przewodnik przedstawia krok po kroku ścieżkę migracji z ExpertPdf doIronPDF— nowoczesnej biblioteki PDF dla platformy .NET z najnowszym silnikiem renderującym Chromium, comiesięcznymi aktualizacjami i architekturą typu "wszystko w jednym".

Dlaczego warto przejść z ExpertPdf na 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

  1. Dokumentacja nieaktualna od 2018 r.: Dokumentacja ExpertPdf nie była aktualizowana od ponad 6 lat. W miarę ewolucji ekosystemu .NET coraz trudniej jest znaleźć aktualne informacje, przykłady i najlepsze praktyki.

  2. Przestarzała wersja przeglądarki Chrome: ExpertPdf wykorzystuje do renderowania starszą wersję przeglądarki Chrome. Nowoczesne funkcje CSS3 (Flexbox, Grid, zmienne CSS) mogą nie wyświetlać się poprawnie, a poprawki bezpieczeństwa nie są stosowane.

  3. Wysokie ceny za przestarzałą technologię: Przy cenie od 550 do 1200 dolarów za licencję, ExpertPdf stosuje wysokie ceny, oferując jednocześnie przestarzałą technologię renderowania.

  4. Fragmentaryczna Suite produktów: ExpertPdf sprzedaje oddzielne pakiety dla różnych funkcji — HtmlToPdf Converter, PDF Merger, PDF Security, PDF Splitter oraz PDF to Image — z których każdy wymaga oddzielnej licencji.

  5. Ograniczona obsługa nowoczesnego .NET: Chociaż ExpertPdf posiada pakiety .NET Core, pozostają one w tyle za nowoczesnymi wersjami i praktykami .NET.

Porównanie architektur

Aspekt ExpertPdf IronPDF
Dokumentacja Wstrzymane od 2018 r. Stale aktualizowane
Silnik renderujący Starsza wersja Chrome Najnowsza wersja Chromium
Obsługa CSS Ograniczone CSS3 Pełna obsługa CSS3 (Flexbox, Grid)
Cena 550–1200 USD Konkurencyjne ceny
Częstotliwość aktualizacji Rzadko Comiesięczne wydania
Model produktu Fragmentaryczne (5+ bibliotek DLL) Biblioteka typu "wszystko w jednym"
Nowoczesny .NET Ograniczone .NET 6/7/8/9+ natywne
Obsługa asynchroniczna Ograniczone Pełna obsługa async/await

Kluczowe korzyści z migracji

  1. Nowoczesne renderowanie: najnowszy silnik Chromium zapewniający idealną jakość obrazu
  2. Pakiet "wszystko w jednym": generowanie plików PDF, scalanie, zabezpieczenia, wyodrębnianie w jednym pakiecie NuGet
  3. Aktywny rozwój: comiesięczne aktualizacje zawierające nowe funkcje i poprawki bezpieczeństwa
  4. Lepsza dokumentacja: kompleksowe samouczki i przykłady
  5. Prawdziwa wieloplatformowość: 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 licencyjnyIronPDF(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 all ExpertPdf references
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find all ExpertPdf references
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
SHELL

Typowe pakiety ExpertPdf, na które warto zwrócić uwagę:

  • ExpertPdf.HtmlToPdf - Konwersja HTML do PDF
  • ExpertPdf.PDFMerge - Łączenie plików PDF
  • ExpertPdf.PDFSecurity - Szyfrowanie i hasła
  • ExpertPdf.PDFSplit - Dzielenie plików PDF
  • ExpertPdf.PdfToImage - Konwersja plików PDF na obrazy

Zrozumienie zmiany wzorca podstawowego

ExpertPdf używa PdfConverter z metodami zwracającymi bezpośrednią tablicę bajtów.IronPDFuż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 pakiety ExpertPdf i zainstaluj IronPDF:

# Remove all ExpertPdf packages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage

# InstallIronPDF(includes all features)
dotnet add package IronPdf
# Remove all ExpertPdf packages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage

# InstallIronPDF(includes all features)
dotnet add package IronPdf
SHELL

Krok 2: Aktualizacja odniesień do przestrzeni nazw

Zastąp przestrzenie nazw ExpertPdf na IronPDF:

// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;

// Add this
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Krok 3: Skonfiguruj licencję

ExpertPdf stosuje licencjonowanie na konwerter.IronPDFkorzysta 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"
$vbLabelText   $csharpLabel

Kompletna dokumentacja API

Mapowanie klas podstawowych

Klasa ExpertPdf OdpowiednikIronPDF
PdfConverter ChromePdfRenderer
PdfDocumentOptions ChromePdfRenderOptions
PdfHeaderOptions TextHeaderFooter lub HtmlHeaderFooter
PdfFooterOptions TextHeaderFooter lub HtmlHeaderFooter
PDFMerge PdfDocument.Merge()

Mapowanie metod

Metoda ExpertPdf MetodaIronPDF
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

Opcja ExpertPdf 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 iIronPDFuż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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

PodejścieIronPDFzwraca obiekt PdfDocument, umożliwiający dodatkową obróbkę (łączenie, dodawanie znaków wodnych, 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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

RenderingOptions firmyIronPDFzapewnia bezpośredni dostęp do właściwości służących do 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 ilustruje kluczową różnicę w konfiguracji nagłówków/stopek — ExpertPdf używa oddzielnych klas PdfHeaderOptions i PdfFooterOptions z tokenami &P;, podczas gdyIronPDFużywa TextHeaderFooter z symbolami zastępczymi {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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

IronPDF TextHeaderFooter udostępnia właściwości LeftText, CenterText i RightText z opcjonalnymi liniami podziału. W przypadku nagłówków opartych na HTML należy używać 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.IronPDFkorzysta z jednej globalnej licencji, ustalanej jednorazowo podczas uruchamiania:

// ExpertPdf - per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
// ExpertPdf - per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";

//IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
' ExpertPdf - per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"

' IronPDF- global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE"
$vbLabelText   $csharpLabel

Konwersja tokenów numeracji stron

Zastąp tokeny ExpertPdf symbolami 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}"
$vbLabelText   $csharpLabel

Konsolidacja fragmentarycznych pakietów

Oddzielne pakiety ExpertPdf (PDFMerge, PDFSecurity, PDFSplit, PdfToImage) są zawarte w jednym pakiecie IronPDF:

// ExpertPdf - requires separate PDFMerge package
var 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 PDFMerge package
var 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 PDFMerge 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 As PdfDocument = PdfDocument.FromFile("file1.pdf")
Dim pdf2 As PdfDocument = PdfDocument.FromFile("file2.pdf")
Dim merged As PdfDocument = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

Aby uzyskać więcej opcji łączenia, zapoznaj się z dokumentacją dotyczącą łączenia plików PDF.

Niestandardowe rozmiary stron

ExpertPdf wykorzystuje punkty.IronPDFuż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 scalania
  • Sprawdź niestandardowe rozmiary stron
  • Testy porównawcze wydajności
  • Testowanie wieloplatformowe
  • Usuń pliki licencji ExpertPdf
  • 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, która jest aktywnie rozwijana i oferuje nowoczesne renderowanie, zapewnia długoterminową kompatybilność. Comiesięczne aktualizacjeIronPDFi najnowszy silnik Chromium stanowią podstawę do generowania plików PDF, które będą nadal działać poprawnie z nowoczesnymi układami CSS3 (Flexbox, Grid) w miarę rozszerzania się projektów w latach 2025 i 2026 — w przeciwieństwie do przestarzałej wersji ExpertPdf dla przeglądarki Chrome, która utknęła w czasie.

Dodatkowe zasoby


Przejście z ExpertPdf naIronPDFeliminuje problemy związane z nieaktualną dokumentacją, przestarzałym renderowaniem w przeglądarce Chrome, fragmentarycznymi licencjami na produkty oraz ograniczoną obsługą nowoczesnego środowiska .NET. Przejście na aktywnie utrzymywaną bibliotekę z najnowszym silnikiem Chromium gwarantuje, że generowanie plików PDF nadąża za ewoluującymi standardami internetowymi i .NET Frameworkem.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie