Zum Fußzeileninhalt springen
VIDEOS

Wie man Markdown in PDF konvertiert

ExpertPdf ist ein kommerzieller HTML-zu-PDF-Konverter for .NET, herausgegeben vonOutside Software Inc.Die neueste Version auf nuget.org ist v20.1.0 (April 2025), sodass die Suite noch aktiv ausgeliefert wird — die Reibung liegt in der Produktform, nicht in der Aufgabe. ExpertPdfverlässt sich auf eine Trident (IE) Engine plus eine "WebKit2" Engine, die in v12.2 hinzugefügt wurde; moderner Chromium ist nicht die Standardeinstellung. Öffentliche ComponentSource-Listings haben historisch den HtmlToPdf-Konverter zu etwa $550–$1.200 pro Tier gezeigt (direkt beim Anbieter verifizieren). Das Toolkit ist auch auf separate NuGet-Pakete aufgeteilt — HtmlToPdf, MergePdf, PdfSecurity, SplitPdf, PdfToImage, PdfCreator — jedes typischerweise separat lizenziert. Dieses Handbuch bietet einen schrittweisen Migrationspfad von ExpertPdfzu IronPDF, einer .NET PDF-Bibliothek mit dem aktuellsten Chromium-Rendering, häufigen Releases und einem All-In-One-Paket.

Warum von ExpertPdfzu IronPDF migrieren?

ExpertPdf stellt mehrere Herausforderungen, die Entwicklungsteams dazu veranlassen, moderne Alternativen zu bewerten. Das Verständnis dieser Aspekte ist für die Planung Ihrer Migrationsstrategie unerlässlich.

Die ExpertPdf-Probleme

  1. Knappe Dokumentation, langsame Kadenz: Referenzdokumentationen existieren auf html-to-pdf.net, aber Tutorials, Featureartikel und Changelog-Einträge sind selten. Die Release-Notes für v20.1 (April 2025) listen "Fehlerbehebungen und Leistungsverbesserungen" auf — keine Hauptfunktionen.

  2. Ältere Rendering-Pipelines: ExpertPdfliefert eine Trident (IE) Engine plus eine "WebKit2" Engine, die in v12.2 hinzugefügt wurde; moderner Chromium ist nicht die Standardeinstellung. CSS3-Features wie Flexbox, Grid und CSS-Variablen rendern am besten auf der "WebKit2" Engine — prüfen Sie vor dem Migrieren großer Bestände gegen Ihren Ziel-HTML.

  3. Premium-Preise für einen alternden Stack: Öffentliche ComponentSource-Listings haben historisch den HtmlToPdf-Konverter zu etwa $550–$1.200 pro Tier gezeigt (verifizieren Sie direkt beim Anbieter — die Bestellseite auf expertpdf.net war zum Zeitpunkt des Schreibens nicht zugänglich).

  4. Fragmentierte Produkt-Suite: ExpertPdfverkauft separate Pakete — ExpertPdf.HtmlToPdf.NetCore / ExpertPdfHtmlToPdf, ExpertPdf.MergePdf, ExpertPdf.PdfSecurity, ExpertPdf.SplitPdf, ExpertPdf.PdfToImage, ExpertPdf.PdfCreator — die typischerweise separat lizenziert werden.

  5. Keine nativen modernen .NET-Ziele: Die .NetCore-Pakete zielen auf .NET Standard 2.0 / .NET Framework 4.6.1, sodass sie auf .NET 5/6/7/8/9 laufen — jedoch erhalten Sie keine nativen Multi-Target-Builds, Trim-freundliche Assemblies oder asynchrone First-APIs.

Architektur-Vergleich

Aspekt ExpertPdf IronPDF
Anbieter Outside Software Inc. Iron Software
Neueste Version (nuget.org) v20.1.0 (Apr 2025) Kontinuierlich aktualisiert
Dokumentation Nur Referenzdokumente, wenig Tutorials Kontinuierlich aktualisiert
Rendering Engine Trident (IE) + "WebKit2" (hinzugefügt in v12.2) Neuestes Chromium
CSS-Unterstützung CSS3 am besten auf WebKit2; teilweise auf älteren Vollständiges CSS3 (Flexbox, Grid)
Preis ~$550–$1.200 (beim Anbieter verifizieren) Siehe ironpdf.com/pricing
Produktmodell Fragmentiert (6+ NuGet-Pakete) All-in-One-Bibliothek
Modernes .NET .NET Standard 2.0 (läuft auf .NET 5-9) .NET 6/7/8/9+ Multi-target
Async-Unterstützung Beschränkt Vollständig async/await

Wichtige Vorteile der Migration

  1. Modernes Rendering: Neueste Chromium-Engine für pixelgenaue Ausgabe
  2. Komplettpaket: PDF-Erstellung, Zusammenführung, Sicherheit und Extraktion in einem NuGet
  3. Aktive Weiterentwicklung: Monatliche Updates mit neuen Funktionen und Sicherheitspatches
  4. Bessere Dokumentation: Umfassende Tutorials und Beispiele
  5. Echte Plattformunabhängigkeit: Unterstützung für Windows, Linux, macOS und Docker.

Vorbereitung auf die Migration

Voraussetzungen

Stellen Sie sicher, dass Ihre Umgebung diese Anforderungen erfüllt:

  • .NET Framework 4.6.2+ oder .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ oder VS Code mit C#-Erweiterung
  • NuGet Package Manager Zugang
  • IronPDF-Lizenzschlüssel (kostenlose Testversion erhältlich unter ironpdf.com)

Audit ExpertPdfVerwendung

Führen Sie diese Befehle in Ihrem Lösungsverzeichnis aus, um alle ExpertPdf-Referenzen zu identifizieren:

# Find all ExpertPdfreferences
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .

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

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

Häufige ExpertPdf-Pakete, nach denen zu suchen ist (genauen Namen auf nuget.org verifizieren — die Suite benutzt inkonsistente Groß-Kleinschreibung):

  • ExpertPdfHtmlToPdf (.NET Framework) / ExpertPdf.HtmlToPdf.NetCore (.NET Core / 5-9) — HTML to PDF
  • ExpertPdf.MergePdf — PDF-Zusammenführung
  • ExpertPdf.PdfSecurity — Verschlüsselung und Passwörter
  • ExpertPdf.SplitPdf — PDF-Teilung
  • ExpertPdf.PdfToImage — PDF-zu-Bild-Konvertierung
  • ExpertPdf.PdfCreator — vollständiges PDF-SDK (Zeichnen, Formulare, Signaturen)

Verständnis der Core Pattern Änderung

ExpertPdf verwendet PdfConverter mit direkter Byte-Array-Rückgabemethode.IronPDF verwendet ChromePdfRenderer, das PdfDocument-Objekte zurückgibt, die zusätzliche Bearbeitungsmöglichkeiten vor dem Speichern bieten.

Schritt-für-Schritt-Migrationsprozess

Schritt 1: NuGet-Pakete aktualisieren

Entfernen Sie alle ExpertPdf-Pakete und installieren Sie IronPDF:

# Remove all ExpertPdfpackages (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 all ExpertPdfpackages (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
SHELL

Schritt 2: Namensraumreferenzen aktualisieren

Ersetzen Sie die ExpertPdf-Namensräume durch IronPDF:

// Remove these
using ExpertPdf.HtmlToPdf;

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

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

Schritt 3: Lizenz konfigurieren

ExpertPdf verwendet eine Lizenzierung pro Konverter.IronPDF verwendet eine einzige globale Lizenz:

// 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

Komplette API-Migrationsreferenz

Kernklassen-Zuordnung

ExpertPdf-Klasse IronPDF-Äquivalent
PdfConverter ChromePdfRenderer
PdfDocumentOptions ChromePdfRenderOptions
PdfHeaderOptions TextHeaderFooter oder HtmlHeaderFooter
PdfFooterOptions TextHeaderFooter oder HtmlHeaderFooter
PDFMerge PdfDocument.Merge()

Methoden-Mapping

ExpertPdf-Methode IronPDF-Methode
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)

Optionen-Zuordnung

ExpertPdf-Option IronPDF RenderingOptionen
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 PaperSize = PdfPaperSize.A4
PdfDocumentOptions.PdfPageOrientation = Portrait PaperOrientation = PdfPaperOrientation.Portrait
PdfDocumentOptions.MarginTop MarginTop
PdfHeaderOptions.HeaderText TextHeader.CenterText
PdfFooterOptions.FooterText TextFooter.RightText

Konvertierung von Seitennummerierungstoken

ExpertPdf und IronPDF verwenden eine andere Platzhalter-Syntax für Seitenzahlen:

ExpertPdf IronPDF
&p; {page}
&P; {total-pages}

Beispiele für die Code-Migration

HTML-zu-PDF-Konvertierung

Die grundlegende HTML-zu-PDF-Konvertierung demonstriert den Wechsel von ExpertPdfs Byte-Array-Muster zu IronPDFs Dokument-Objekt-Ansatz.

ExpertPdf-Einführung:

// 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

IronPDF-Implementierung:

// 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

Der Ansatz von IronPDF gibt ein PdfDocument-Objekt zurück, das zusätzliche Manipulationen (Zusammenführen, Wasserzeichen, Sicherheit) vor dem Speichern ermöglicht. Weitere Optionen finden Sie in der HTML zu PDF Dokumentation.

URL zu PDF mit Seiteneinstellungen

ExpertPdf-Einführung:

// 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

IronPDF-Implementierung:

// 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

IronPDFs RenderingOptions bietet direkten Zugriff auf Eigenschaften für die Seitenkonfiguration. Weitere Optionen finden Sie in der URL zur PDF-Dokumentation.

Kopf- und Fußzeilen mit Seitenzahlen

Dieses Beispiel zeigt den wesentlichen Unterschied in der Konfiguration von Kopf- und Fußzeilen: ExpertPdfverwendet separate PdfHeaderOptions- und PdfFooterOptions-Klassen mit &P;-Tokens, während IronPDFTextHeaderFooter mit {total-pages}-Platzhaltern verwendet.

ExpertPdf-Einführung:

// 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

IronPDF-Implementierung:

// 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

IronPDFs TextHeaderFooter bietet LeftText-, CenterText- und RightText-Eigenschaften mit optionalen Trennlinien. Für HTML-basierte Kopfzeilen verwenden Sie HtmlHeaderFooter. Weitere Optionen finden Sie in der Kopf- und Fußzeilen-Dokumentation.

Kritische Hinweise zur Migration

Standort des Lizenzschlüssels

ExpertPdf verwendet eine Lizenzierung pro Konverter.IronPDF verwendet eine einzige globale Lizenz, die einmal beim Start festgelegt wird:

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

Konvertierung von Seitennummerierungstoken

Ersetzen Sie ExpertPdf-Tokens durch IronPDF-Platzhalter:

// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"

// IronPDF
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

Fragmentierte Pakete konsolidiert

Die separaten Pakete von ExpertPdf(PDFMerge, PDFSecurity, PDFSplit, PdfToImage) sind alle im Einzelpaket von IronPDF enthalten:

// 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")
$vbLabelText   $csharpLabel

Weitere Optionen zur Zusammenführung finden Sie in der PDF-Dokumentation zur Zusammenführung.

Benutzerdefinierte Seitengrößen

ExpertPdf verwendet Punkte.IronPDF arbeitet mit Millimetern. Konvertieren: points / 72 * 25.4 = mm

Post-Migrations-Checkliste

Überprüfen Sie nach Abschluss der Codemigration Folgendes:

  • Visueller Vergleich der generierten PDFs
  • Überprüfen Sie Kopf- und Fußzeilen sowie Seitenzahlen
  • Sicherheits-/Verschlüsselungseinstellungen testen
  • Zusammenführungsvorgänge validieren
  • Benutzerdefinierte Seitengrößen prüfen
  • Leistungsvergleich
  • Plattformübergreifende Tests
  • ExpertPdf-Lizenzdateien entfernen
  • Dokumentation aktualisieren

Zusätzliche Ressourcen


Die Migration von ExpertPdfzu IronPDF ersetzt knappe Dokumentation, veraltete Rendering-Pipelines und fragmentierte Produktlizenzierung durch eine aktiv gewartete Bibliothek auf der neuesten Chromium-Engine — das hält Ihre PDF-Erzeugung mit aktuellen Webstandards und modernen .NET-Zielen im Einklang.

Hinweis:ExpertPDF ist eine eingetragene Marke ihres Eigentümers (Outside Software Inc.). Diese Seite ist nicht mitOutside Software Inc.verbunden, wird nicht von ihnen unterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Besitzer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an