Migrieren von SelectPdf zu IronPDF in C#
Die Migration von SelectPdf zu IronPDF verwandelt Ihren PDF-Generierungs-Workflow von einer reinen Windows-Lösung mit einer veralteten Rendering-Engine in eine moderne, plattformübergreifende Bibliothek mit vollständiger CSS3- und JavaScript-Unterstützung. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der die Bereitstellung auf Linux, Docker, Azure Functions und anderen Cloud-Plattformen ermöglicht, die SelectPdf nicht unterstützen kann.
Warum von SelectPdf zu IronPDF migrieren
SelectPdf verstehen
SelectPdf ist eine kommerzielle Bibliothek, die für die Konvertierung von HTML-Inhalten in PDF-Dateien mit C# entwickelt wurde. Die Bibliothek ist auf Entwickler zugeschnitten, die eine nahtlose Integration von PDF-Generierungsfunktionen in ihre Anwendungen benötigen. Die Stärke von SelectPdf liegt in seiner einfachen API, was es zu einer attraktiven Option für diejenigen macht, die neu in der PDF-Erstellung sind.
Potenzielle Benutzer müssen sich jedoch der kritischen Grenzen der Übersetzung bewusst sein. Obwohl SelectPdf als plattformübergreifend beworben wird, funktioniert es nur in Windows-Umgebungen. Dies stellt eine erhebliche Hürde dar, wenn es um Cloud-basierte Bereitstellungslösungen wie Azure Functions oder Container wie Docker geht. Außerdem ist die kostenlose Version stark eingeschränkt und erlaubt nur bis zu fünf Seiten, bevor sie mit einem aggressiven Wasserzeichen versehen wird. SelectPdf nutzt einen veralteten Blink-Fork und eine WebKit-basierte Architektur, die Kompatibilitätsprobleme mit modernen Webtechnologien wie CSS Gridund Advanced Flexbox verursacht.
Kritische Beschränkungen von SelectPdf
| Problem | Auswirkungen | IronPDF Lösung |
|---|---|---|
| Nur für Windows | Kann nicht auf Linux, Docker, Azure Functionsbereitgestellt werden | Vollständige plattformübergreifende Unterstützung |
| Veraltete Rendering-Engine | Modernes CSS versagt, Layouts brechen | Aktuelles Chromium |
| Beschränkung der kostenlosen Version auf 5 Seiten | Aggressives Wasserzeichen nach 5 Seiten | Großzügige Probezeit |
| Keine Unterstützung von .NET 10 | Zukunftssichere Probleme | Vollständige Unterstützung von .NET 10 |
| Cloud-Bereitstellung blockiert | Kann AWS Lambda, Azure Functionsnicht verwenden | Cloud-nativ |
Vergleich zwischen SelectPdf und IronPDF
| Feature | SelectPdf | IronPDF |
|---|---|---|
| Windows, Linux, macOS, Docker, Azure, AWS. | Nur Windows | Vollständig plattformübergreifend, 10+ Distros |
| Unterstützung moderner Webstandards | Begrenzt (veraltetes Blink) | Vollständiges CSS3, modernes Chromium |
| Maximale Seitenzahl der kostenlosen Version | 5 Seiten | Flexibel, keine feste Grenze |
| Preisgestaltung | Beginnt bei $499 | Transparente und flexible Preisgestaltung |
| .NET 10 Unterstützung | Keine | Unterstützt |
| Bereitstellung in Cloud-Umgebungen | Nicht unterstützt | Vollständig unterstützt |
| CSS Grid | Beschränkt | Unterstützt |
| Flexbox | Beschränkt | Unterstützt |
| CSS-Variablen | Nicht unterstützt | Unterstützt |
| Docker | NICHT UNTERSTÜTZT | Offizielle Bilder |
| Azure Functions | NICHT UNTERSTÜTZT | Unterstützt |
| AWS Lambda | NICHT UNTERSTÜTZT | Unterstützt |
Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, unterstützt SelectPdf ausdrücklich nicht .NET 10, was zu Problemen bei der Zukunftssicherheit führt. IronPDF bietet volle Unterstützung für alle modernen .NET-Versionen.
Bevor Sie beginnen
Voraussetzungen
- .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9/10+
- NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
- IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.
NuGet-Paketänderungen
# Remove SelectPdf
dotnet remove package Select.HtmlToPdf
# Install IronPDF
dotnet add package IronPdf
# Remove SelectPdf
dotnet remove package Select.HtmlToPdf
# Install IronPDF
dotnet add package IronPdf
Lizenz-Konfiguration
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Komplette API-Referenz
Namensraumänderungen
// Before: SelectPdf
using SelectPdf;
// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
// Before: SelectPdf
using SelectPdf;
// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;
' Before: SelectPdf
Imports SelectPdf
' After: IronPDF
Imports IronPdf
Imports IronPdf.Engines.Chrome
Kern-API-Zuordnungen
| SelectPdf | IronPDF | Notizen |
|---|---|---|
HtmlToPdf |
ChromePdfRenderer |
Core-Konverter-Klasse |
converter.ConvertHtmlString(html) |
renderer.RenderHtmlAsPdf(html) |
HTML-String-Konvertierung |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
URL-Konvertierung |
doc.Save(path) |
pdf.SaveAs(path) |
In Datei speichern |
doc.Close() |
Nicht erforderlich | IronPDF übernimmt die Bereinigung |
converter.Options.PdfPageSize |
renderer.RenderingOptions.PaperSize |
Papierformat |
converter.Options.PdfPageOrientation |
renderer.RenderingOptions.PaperOrientation |
Orientierung |
converter.Options.MarginTop |
renderer.RenderingOptions.MarginTop |
Oberer Rand |
converter.Options.MarginBottom |
renderer.RenderingOptions.MarginBottom |
Unterer Rand |
converter.Options.MarginLeft |
renderer.RenderingOptions.MarginLeft |
Linker Rand |
converter.Options.MarginRight |
renderer.RenderingOptions.MarginRight |
Rechter Rand |
PdfPageSize.A4 |
PdfPaperSize.A4 |
A4-Format enum |
PdfPageOrientation.Portrait |
PdfPaperOrientation.Portrait |
Porträt enum |
PdfPageOrientation.Landscape |
PdfPaperOrientation.Landscape |
Landscape enum |
{page_number} |
{page} |
Platzhalter für die Seitenzahl |
{total_pages} |
{total-pages} |
Gesamtseiten Platzhalter |
Beispiele für die Code-Migration
Beispiel 1: Konvertierung von HTML-Strings in PDF
Vor (SelectPdf):
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlToPdf converter = new HtmlToPdf();
PdfDocument doc = converter.ConvertHtmlString(htmlContent);
doc.Save("document.pdf");
doc.Close();
Console.WriteLine("PDF generated from HTML string");
}
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlToPdf converter = new HtmlToPdf();
PdfDocument doc = converter.ConvertHtmlString(htmlContent);
doc.Save("document.pdf");
doc.Close();
Console.WriteLine("PDF generated from HTML string");
}
}
Imports SelectPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim converter As New HtmlToPdf()
Dim doc As PdfDocument = converter.ConvertHtmlString(htmlContent)
doc.Save("document.pdf")
doc.Close()
Console.WriteLine("PDF generated from HTML string")
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document.pdf");
Console.WriteLine("PDF generated from HTML string");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document.pdf");
Console.WriteLine("PDF generated from HTML string");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("document.pdf")
Console.WriteLine("PDF generated from HTML string")
End Sub
End Class
Dieses Beispiel veranschaulicht die wichtigsten API-Unterschiede. SelectPdf verwendet HtmlToPdf als Konverterklasse und ruft ConvertHtmlString() auf, um ein PdfDocument zu erstellen, und anschließend Save() und Close(), um die Daten zu speichern und zu bereinigen.
IronPDF verwendet ChromePdfRenderer mit RenderHtmlAsPdf() und gibt einen PdfDocument zurück, der mit SaveAs() gespeichert wird. Der Aufruf Close() entfällt –IronPDF übernimmt die Ressourcenverwaltung automatisch. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.
Beispiel 2: Konvertierung von URL in PDF
Vor (SelectPdf):
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf converter = new HtmlToPdf();
PdfDocument doc = converter.ConvertUrl("https://www.example.com");
doc.Save("output.pdf");
doc.Close();
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf converter = new HtmlToPdf();
PdfDocument doc = converter.ConvertUrl("https://www.example.com");
doc.Save("output.pdf");
doc.Close();
Console.WriteLine("PDF created successfully");
}
}
Imports SelectPdf
Imports System
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdf()
Dim doc As PdfDocument = converter.ConvertUrl("https://www.example.com")
doc.Save("output.pdf")
doc.Close()
Console.WriteLine("PDF created successfully")
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
Die Methode ConvertUrl() von SelectPdf entspricht direkt der Methode RenderUrlAsPdf() von IronPDF. Der entscheidende Unterschied liegt in der Rendering-Engine: SelectPdf verwendet einen veralteten Blink/WebKit-Fork, der mit modernem CSS zu kämpfen hat, während IronPDF die neueste stabile Chromium-Version mit voller CSS3- und JavaScript-Unterstützung verwendet. Erfahren Sie mehr in unseren Tutorials.
Beispiel 3: Benutzerdefinierte Seiteneinstellungen und Ränder
Vor (SelectPdf):
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf converter = new HtmlToPdf();
converter.Options.PdfPageSize = PdfPageSize.A4;
converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
converter.Options.MarginTop = 20;
converter.Options.MarginBottom = 20;
converter.Options.MarginLeft = 20;
converter.Options.MarginRight = 20;
string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
PdfDocument doc = converter.ConvertHtmlString(html);
doc.Save("custom-settings.pdf");
doc.Close();
Console.WriteLine("PDF with custom settings created");
}
}
// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdf converter = new HtmlToPdf();
converter.Options.PdfPageSize = PdfPageSize.A4;
converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
converter.Options.MarginTop = 20;
converter.Options.MarginBottom = 20;
converter.Options.MarginLeft = 20;
converter.Options.MarginRight = 20;
string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
PdfDocument doc = converter.ConvertHtmlString(html);
doc.Save("custom-settings.pdf");
doc.Close();
Console.WriteLine("PDF with custom settings created");
}
}
Imports SelectPdf
Imports System
Module Program
Sub Main()
Dim converter As New HtmlToPdf()
converter.Options.PdfPageSize = PdfPageSize.A4
converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait
converter.Options.MarginTop = 20
converter.Options.MarginBottom = 20
converter.Options.MarginLeft = 20
converter.Options.MarginRight = 20
Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
Dim doc As PdfDocument = converter.ConvertHtmlString(html)
doc.Save("custom-settings.pdf")
doc.Close()
Console.WriteLine("PDF with custom settings created")
End Sub
End Module
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("custom-settings.pdf");
Console.WriteLine("PDF with custom settings created");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("custom-settings.pdf");
Console.WriteLine("PDF with custom settings created");
}
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
Dim html As String = "<html><body><h1>Custom Page Settings</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("custom-settings.pdf")
Console.WriteLine("PDF with custom settings created")
End Sub
End Module
Das Muster der Seiteneinstellungen ist nahezu identisch, mit einfachen Änderungen der Eigenschaftsnamen:
converter.Options.PdfPageSize→renderer.RenderingOptions.PaperSizeconverter.Options.PdfPageOrientation→renderer.RenderingOptions.PaperOrientationPdfPageSize.A4→PdfPaperSize.A4PdfPageOrientation.Portrait→PdfPaperOrientation.Portrait
Die Randeigenschaften behalten dieselben Namen und Einheiten bei.
Das Nur-Windows-Problem
Einschränkung der Plattform von SelectPdf
Ungeachtet jeglicher Marketingaussagen unterstützt SelectPdf ausdrücklich Folgendes nicht:
- Linux (jede Distribution)
- macOS
- Docker-Container
- Azure Functions
- AWS Lambda
- Google Cloud Functions
- Alle ARM-basierten Systeme
Dies ist eine grundlegende architektonische Einschränkung - SelectPdf hängt von Windows-spezifischen Bibliotheken ab und kann nicht portiert werden.
Vergleich der Plattformunterstützung
| Plattform| SelectPdf|IronPDF| | ---------- | :---: | :---: || Windows Server 2019+| ✅ | ✅ || Windows 10/11| ✅ | ✅ || Ubuntu 20.04+| ❌ | ✅ || Debian 10+| ❌ | ✅ || CentOS 7+| ❌ | ✅ || Alpine Linux| ❌ | ✅ || Amazon Linux 2| ❌ | ✅ || macOS 10.15+| ❌ | ✅ || Azure App Service (Linux)| ❌ | ✅ || Azure Functions| ❌ | ✅ || AWS Lambda| ❌ | ✅ || Docker (Linux)| ❌ | ✅ || Kubernetes| ❌ | ✅ |
Die veraltete Rendering-Engine
CSS-Funktionsunterstützung im Vergleich
SelectPdf verwendet einen veralteten Blink/WebKit-Fork, der nicht mit den modernen Webstandards Schritt gehalten hat:
| CSS-Funktion | SelectPdf | IronPDF |
|---|---|---|
| CSS Grid | ⚠️ Teilweise/gebrochen | ✅Vollständig |
| Flexbox (grundlegend) | ✅ | ✅ |
| Flexbox (Gap-Eigenschaft) | ❌ | ✅ |
| CSS-Variablen | ❌ | ✅ |
| CSS calc() | ⚠️ Eingeschränkt | ✅ |
| @media print | ⚠️ Eingeschränkt | ✅ |
| @font-face | ⚠️ Eingeschränkt | ✅ |
| Web-Schriftarten | ⚠️ Eingeschränkt | ✅ |
| SVG | ⚠️ Basic | ✅Vollständig |
| CSS-Transformationen | ⚠️ Eingeschränkt | ✅ |
| CSS-Animationen | ❌ | ✅ |
Neue Funktionen nach der Migration
Nach der Umstellung auf IronPDF erhalten Sie Funktionen, die SelectPdf nicht bieten kann:
Plattformübergreifende Bereitstellung
// ✅IronPDF- Works everywhere
using IronPdf;
// Azure App Service (Linux)- WORKS
// Docker container - WORKS
// AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
// ✅IronPDF- Works everywhere
using IronPdf;
// Azure App Service (Linux)- WORKS
// Docker container - WORKS
// AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
' Azure App Service (Linux)- WORKS
' Docker container - WORKS
' AWS Lambda- WORKS
' GitHub Actions on ubuntu-latest - WORKS
' macOS development - WORKS
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>")
pdf.SaveAs("output.pdf")
Moderne CSS-Unterstützung
// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();
var html = @"
<style>
:root { --primary: #007bff; --gap: 20px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();
var html = @"
<style>
:root { --primary: #007bff; --gap: 20px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!
Imports IronPdf
' ✅IronPDF- Uses latest stable Chromium
Dim renderer As New ChromePdfRenderer()
Dim html As String = "
<style>
:root { --primary: #007bff; --gap: 20px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
<div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' All modern CSS features render correctly!
Kein Close() erforderlich
IronPDF verwaltet die Ressourcen automatisch:
// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed
// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
pdf.SaveAs("output.pdf");
}
// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed
// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
pdf.SaveAs("output.pdf");
}
' Option 1: Let garbage collection handle it
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' No Close() needed
' Option 2: Explicit disposal
Using pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Using
Migrations-Checkliste
Vor der Migration
- Alle SelectPdf-Verwendungen im Quellcode prüfen
- Dokumentieren Sie die aktuellen Konverteroptionen für die Zuordnung
- Header-/Footer-Implementierungen identifizieren
- Syntax für Seitenzahl-Platzhalter prüfen (
{page_number}→{page}) - Beachten Sie die grundlegenden URL-Verarbeitungsmuster
- Zielbereitstellungsplattformen überprüfen
- Den IronPDF Lizenzschlüssel erhalten Sie unter IronPDF
Code-Aktualisierungen
- Entfernen Sie das NuGet Paket
Select.HtmlToPdf - Installieren Sie das NuGet Paket
IronPdf - Namespace-Importe aktualisieren (
using SelectPdf;→using IronPdf;) - Ersetzen Sie
HtmlToPdfdurchChromePdfRenderer - Ersetzen Sie
ConvertHtmlString()durchRenderHtmlAsPdf() - Ersetzen Sie
ConvertUrl()durchRenderUrlAsPdf() - Aktualisierung der Optionsnamen (
Options.PdfPageSize→RenderingOptions.PaperSize) - Konvertiere
PdfPageSizeinPdfPaperSize - Konvertiere
PdfPageOrientationinPdfPaperOrientation - Ersetzen Sie
doc.Save()durchpdf.SaveAs() - Entferne alle
doc.Close()-Aufrufe - Korrigiere die Platzhalter für Seitenzahlen (
{page_number}→{page},{total_pages}→{total-pages}) - Lizenzinitialisierung beim Anwendungsstart hinzufügen
Nach der Migration
- Alle Unit-Tests ausführen
- CSS-Rendering überprüfen (insbesondere Grid/Flexbox)
- JavaScript -Ausführung testen
- Überprüfen Sie die Seitenzahlen in Kopf- und Fußzeile.
- Test auf den Zielplattformen (Linux, Docker usw.)
- Leistungstest
- Vergleich der PDF-Ausgabequalität
- CI/CD-Pipelines aktualisieren
- Testen von Cloud-Bereitstellungen (falls zutreffend)

