Migrieren von PDFBolt zu IronPDF in C#
Durch die Migration von PDFBolt zu IronPDF wird Ihr .NET-PDF-Workflow von einem reinen Cloud-SaaS-Dienst mit externer Dokumentenverarbeitung zu einer selbst gehosteten Bibliothek mit vollständigem Datenschutz und unbegrenzter lokaler Generierung. Dieser Leitfaden bietet einen umfassenden, schrittweisen Migrationspfad, der Netzwerkabhängigkeiten, Nutzungsbeschränkungen und externe Datenübertragungen eliminiert und gleichzeitig den Zugang zu PDF-Bearbeitungsfunktionen ermöglicht, die PDFBolt nicht bieten kann.
Warum von PDFBolt zu IronPDF migrieren
Das Cloud-Only-Problem
PDFBolt ist eine Cloud-only SaaS-Plattform, die Ihre Dokumente auf externen Servern verarbeitet. Diese Architektur ist zwar praktisch für schnelle Prototypen, stellt aber für Produktionsanwendungen eine große Herausforderung dar:
-
Verarbeitung ausschließlich in der Cloud: Jedes Dokument durchläuft externe Server – eine selbstgehostete Option steht nicht zur Verfügung, was Unternehmen abschrecken könnte, die mehr Kontrolle über ihre Daten und Prozesse benötigen.
-
Datenschutzrisiken: Sensible Dokumente (Verträge, Krankenakten, Finanzdaten) müssen extern übermittelt werden. Unternehmen, die mit sensiblen Informationen arbeiten, haben berechtigte Bedenken.
-
Nutzungsbeschränkungen: Das kostenlose Kontingent ist auf 100 Dokumente pro Monat begrenzt, was für größere Unternehmen möglicherweise nicht ausreicht. Der Preis pro Dokument summiert sich bei Produktionsaufträgen schnell.
-
Netzwerkabhängigkeit: Bei Internetausfällen oder Ausfallzeiten von PDFBolt wird die PDF-Generierung vollständig unterbrochen.
-
Latenz: Die Netzwerk-Roundtrip-Zeit verlängert jede Konvertierung um Sekunden im Vergleich zur lokalen Verarbeitung.
-
Compliance-Probleme: Die Durchführung von Audits gemäß DSGVO, HIPAA und SOC2 wird durch die externe Dokumentenverarbeitung erschwert.
-
Sicherheit der API-Schlüssel: Durchgesickerte API-Schlüssel können zu unautorisierter Nutzung führen, die Ihrem Konto in Rechnung gestellt wird.
- Abhängigkeit vom Anbieter: Ihre Anwendung schlägt fehl, wenn PDFBolt die Bedingungen ändert oder den Betrieb einstellt.
PDFBolt vs IronPDFVergleich
| Betrifft | PDFBolt | IronPDF |
|---|---|---|
| Datenstandort | Externe Server | Nur Ihre Server |
| Nutzungseinschränkungen | 100 kostenlos, dann pro Dokument | Unbegrenzt |
| Internet erforderlich | Ja, immer | Nein |
| Latenzzeit | Netzwerk-Round-Trip | Millisekunden |
| Konformität | Komplex (externe Bearbeitung) | Einfach (lokale Verarbeitung) |
| Kostenmodell | Pro Dokument | Einmalig oder jährlich |
| Offline-Betrieb | Unmöglich | Vollständig unterstützt |
| API Hauptrisiken | Durchgesickert = in Rechnung gestellt | Lizenzschlüssel, kein Abrechnungsrisiko |
Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 bzw. 2026 planen, bietet IronPDF eine selbst gehostete Grundlage, die vollständigen Datenschutz gewährleistet und die Abhängigkeit von externen Cloud-Diensten beseitigt.
Bevor Sie beginnen
Voraussetzungen
- .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
- IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.
NuGet-Paketänderungen
# Remove PDFBolt
dotnet remove package PDFBolt
# Install IronPDF
dotnet add package IronPdf
# Remove PDFBolt
dotnet remove package PDFBolt
# Install IronPDF
dotnet add package IronPdf
Lizenz-Konfiguration
// 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"
Die Verwendung von PDFBolt erkennen
# Find all PDFBolt references
grep -r "PDFBolt\|HtmlToPdfConverter\|ConvertHtmlString\|ConvertUrl" --include="*.cs" .
# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
# Find all PDFBolt references
grep -r "PDFBolt\|HtmlToPdfConverter\|ConvertHtmlString\|ConvertUrl" --include="*.cs" .
# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
Komplette API-Referenz
Kernklassen-Zuordnungen
| PDFBolt | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
PageSize |
PdfPaperSize |
| (gibt byte[] zurück)_ | PdfDocument |
Konvertierungsmethoden-Zuordnungen
| PDFBolt | IronPDF |
|---|---|
converter.ConvertHtmlString(html) |
renderer.RenderHtmlAsPdf(html) |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
Zuordnungen von Ausgabemethoden
| PDFBolt | IronPDF |
|---|---|
File.WriteAllBytes(path, pdf) |
pdf.SaveAs(path) |
| (pdf ist byte[]) | pdf.BinaryData |
| (manueller Stream)_ | pdf.Stream |
Zuordnungen der Seitenkonfiguration
| PDFBolt | IronPDF |
|---|---|
converter.PageSize = PageSize.A4 |
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4 |
converter.MarginTop = 20 |
renderer.RenderingOptions.MarginTop = 20 |
converter.MarginBottom = 20 |
renderer.RenderingOptions.MarginBottom = 20 |
converter.MarginLeft = 15 |
renderer.RenderingOptions.MarginLeft = 15 |
converter.MarginRight = 15 |
renderer.RenderingOptions.MarginRight = 15 |
Kopf-/Fußzeilen-Platzhalter-Zuordnungen
| PDFBolt | IronPDF |
|---|---|
{pageNumber} |
{page} |
{totalPages} |
{total-pages} |
{date} |
{date} |
{title} |
{html-title} |
Beispiele für die Code-Migration
Beispiel 1: Grundlegendes HTML zu PDF
Vor (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Der grundlegende Unterschied ist der Rückgabetyp und das Speichermuster. PDFBolt s HtmlToPdfConverter.ConvertHtmlString() gibt einen byte[] zurück, den Sie manuell mit File.WriteAllBytes() auf die Festplatte schreiben müssen. Dies erfordert den Import von System.IO und die manuelle Bearbeitung der Dateivorgänge.
IronPDF's ChromePdfRenderer.RenderHtmlAsPdf() gibt ein PdfDocument Objekt mit einer eingebauten SaveAs() Methode zurück. Dieser objektorientierte Ansatz bietet zusätzliche Vorteile: Sie können die PDF-Datei vor dem Speichern manipulieren (Wasserzeichen hinzufügen, Dokumente zusammenführen, Sicherheit hinzufügen). Falls Sie die Rohbytes zur Kompatibilität mit bestehendem Code benötigen, verwenden Sie pdf.BinaryData. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.
Beispiel 2: Konvertierung von URL in PDF
Vor (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim pdf = converter.ConvertUrl("https://www.example.com")
File.WriteAllBytes("webpage.pdf", pdf)
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
Das PDFBolt-Muster für die URL-Konvertierung folgt dem gleichen Ansatz wie bei der HTML-Konvertierung: ConvertUrl() gibt byte[] zurück, wofür File.WriteAllBytes() zum Speichern benötigt wird. Beachten Sie, dass PDFBolt immer noch einen Netzwerk-Roundtrip zu seinen Servern benötigt, auch wenn Sie bereits von einer URL abrufen.
Die Methode RenderUrlAsPdf() von IronPDF gibt einen Wert PdfDocument mit der integrierten Methode SaveAs() zurück. Der Hauptvorteil besteht darin, dass IronPDF den URL-Abruf und das PDF-Rendering lokal durchführt - keine Daten verlassen Ihre Infrastruktur. Beachten Sie, dass die IronPDFVersion für diesen einfachen Fall nicht einmal using System.IO; benötigt. Erfahren Sie mehr über die URL in PDF Konvertierung.
Beispiel 3: HTML-Datei mit benutzerdefinierten Seiteneinstellungen
Vor (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.PageSize = PageSize.A4
converter.MarginTop = 20
converter.MarginBottom = 20
Dim html As String = File.ReadAllText("input.html")
Dim pdf As Byte() = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
Dim html = File.ReadAllText("input.html")
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
Dieses Beispiel zeigt die Unterschiede in der Seitenkonfiguration. PDFBolt setzt Eigenschaften direkt auf dem Konverterobjekt (converter.PageSize, converter.MarginTop).IronPDF verwendet ein RenderingOptions Objekt auf dem Renderer (renderer.RenderingOptions.PaperSize, renderer.RenderingOptions.MarginTop).
Die wichtigsten Mappings:
PageSize.A4→PdfPaperSize.A4(anderer Enum-Name)MarginTop = 20→RenderingOptions.MarginTop = 20(via RenderingOptions)
Beide verwenden Millimeter für Randwerte, so dass Ihre vorhandenen Randwerte direkt übertragen werden sollten. Der Namespace IronPdf.Rendering wird für den Zugriff auf die Enumeration PdfPaperSize benötigt. Weitere Optionen für die Seitenkonfiguration finden Sie in der Dokumentation der Darstellungsoptionen.
Kritische Hinweise zur Migration
Rückgabetyp ändern
PDFBolt gibt byte[] direkt zurück;IronPDF gibt PdfDocument zurück:
// PDFBolt pattern:
byte[] pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
//IronPDF pattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
// PDFBolt pattern:
byte[] pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
//IronPDF pattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
' PDFBolt pattern:
Dim pdf As Byte() = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
' IronPDF pattern:
Dim pdfDocument = renderer.RenderHtmlAsPdf(html)
pdfDocument.SaveAs("output.pdf")
' Or if you need bytes:
Dim pdfBytes As Byte() = renderer.RenderHtmlAsPdf(html).BinaryData
Änderung der Klassennamen
Der Name der Hauptklasse wird von "Konverter" in "Renderer" geändert:
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFBolt
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
Änderung von Konfigurationsmustern
PDFBolt verwendet direkte Eigenschaften;IronPDF verwendet RenderingOptions:
// PDFBolt: Direct properties
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
// IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
// PDFBolt: Direct properties
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
// IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
' PDFBolt: Direct properties
converter.PageSize = PageSize.A4
converter.MarginTop = 20
' IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
API-Schlüssel-Eliminierung
PDFBolt erfordert die Verwaltung von API-Schlüsseln pro Anfrage;IronPDF verwendet einen einmaligen Lizenzschlüssel:
// PDFBolt: API key per client (security risk if leaked)
var apiKey = config["PDFBolt:ApiKey"];
var client = new Client(apiKey);
// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
// PDFBolt: API key per client (security risk if leaked)
var apiKey = config["PDFBolt:ApiKey"];
var client = new Client(apiKey);
// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
' PDFBolt: API key per client (security risk if leaked)
Dim apiKey = config("PDFBolt:ApiKey")
Dim client = New Client(apiKey)
' IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()
Entfernen der Netzwerk-Fehlerbehandlung
Lokale Verarbeitung bedeutet, dass keine Netzwerkfehler zu behandeln sind:
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)
// IronPDF: Remove network-specific catches entirely
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)
// IronPDF: Remove network-specific catches entirely
Neue Funktionen verfügbar
Nach der Migration auf IronPDF erhalten Sie Funktionen, die PDFBolt nicht bieten kann:
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);
// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");
// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";
// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();
// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);
// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");
// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";
// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();
// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
' PDF Merging (not available in PDFBolt)
Dim merged = PdfDocument.Merge(pdf1, pdf2)
' Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>")
' Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret"
' Text Extraction (not available in PDFBolt)
Dim text As String = pdf.ExtractAllText()
' PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png")
Fehlerbehebung
Ausgabe 1: HtmlToPdfConverter nicht gefunden
Problem: Die Klasse HtmlToPdfConverter existiert nicht in IronPDF.
Lösung: Verwenden Sie ChromePdfRenderer:
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFBolt
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
Ausgabe 2: ConvertHtmlString nicht gefunden
Problem: Die Methode ConvertHtmlString() existiert nicht.
Lösung: Verwenden Sie RenderHtmlAsPdf():
// PDFBolt
var pdf = converter.ConvertHtmlString(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFBolt
var pdf = converter.ConvertHtmlString(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
' PDFBolt
Dim pdf = converter.ConvertHtmlString(html)
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Ausgabe 3: ConvertUrl nicht gefunden
Problem: Die Methode ConvertUrl() existiert nicht.
Lösung: Verwenden Sie RenderUrlAsPdf():
// PDFBolt
var pdf = converter.ConvertUrl(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
// PDFBolt
var pdf = converter.ConvertUrl(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
' PDFBolt
Dim pdf = converter.ConvertUrl(url)
' IronPDF
Dim pdf = renderer.RenderUrlAsPdf(url)
Ausgabe 4: PageSize Enum nicht gefunden
Problem: PageSize enum existiert nicht.
Lösung: Verwenden Sie PdfPaperSize von IronPdf.Rendering:
// PDFBolt
converter.PageSize = PageSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDFBolt
converter.PageSize = PageSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' PDFBolt
converter.PageSize = PageSize.A4
' IronPDF
Imports IronPdf.Rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Ausgabe 5: Erste PDF-Erzeugung ist langsam
Problem: Das erste Rendern dauert länger als erwartet.
Lösung: Die Chromium-Engine initialisiert sich bei der ersten Verwendung. Bei Bedarf vorwärmen:
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
' Warm up during application startup
Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf("<html><body></body></html>")
Migrations-Checkliste
Vor der Migration
- Alle PDFBolt-Verwendungen im Quellcode erfassen
- Dokumentieren Sie die aktuellen Seitenkonfigurationseinstellungen (Seitengröße, Ränder)
- API-Schlüsselverwaltungscode identifizieren, der entfernt werden soll
- Geben Sie alle Ratenbegrenzungen oder Netzwerkfehlerbehandlungen an, die gelöscht werden sollen -IronPDF-Lizenzschlüssel erhalten
Paketänderungen
- Entfernen Sie das NuGet Paket
PDFBolt - Installieren Sie das NuGet Paket
IronPdf:dotnet add package IronPdf - Füge den Namespace
using IronPdf;hinzu - Fügen Sie
using IronPdf.Rendering;für Papiergrößen-Enumerationen hinzu
Code-Änderungen
- Lizenzschlüsselkonfiguration beim Start hinzufügen
- Ersetzen Sie
HtmlToPdfConverterdurchChromePdfRenderer - Ersetzen Sie
ConvertHtmlString()durchRenderHtmlAsPdf() - Ersetzen Sie
ConvertUrl()durchRenderUrlAsPdf() - Ersetzen Sie
File.WriteAllBytes()durchpdf.SaveAs() - Aktualisierung von
PageSizeaufRenderingOptions.PaperSize - Aktualisiere die Randeigenschaften auf
RenderingOptions.MarginTop, usw. - API-Schlüsselverwaltungscode entfernen
- Code zur Ratenbegrenzung entfernen
- Netzwerkfehlerbehandlung entfernen
Nach der Migration
- API-Schlüssel aus Konfigurationsdateien löschen
- API-Schlüssel aus Secret Managern entfernen
- Führen Sie alle Tests durch und vergleichen Sie die PDF-Ausgabe.
- Überprüfen Sie, ob Seitengrößen und Ränder korrekt dargestellt werden.
- Erwägen Sie die Hinzufügung neuer Funktionen (Wasserzeichen, Sicherheit, Zusammenführung)

