Wie man PDF in PDF A in C# mit IronPDF konvertiert
Die Migration von GrabzItzu IronPDF verwandelt Ihren .NET-PDF-Workflow von einem cloudbasierten Screenshot-Erfassungsdienst mit komplexem Callback in eine prozessinterne Bibliothek, die echte Vektor-PDFs mit auswählbarem, durchsuchbarem Text erzeugt. Dieser Leitfaden bietet einen umfassenden, schrittweisen Migrationspfad, der externe Serverabhängigkeiten, Callback-Handler und Preise pro Aufnahme für professionelle .NET-Entwickler eliminiert.
Warum von GrabzItzu IronPDF migrieren
Das GrabzIt-Architektur-Problem
GrabzIt ist ein cloudbasierter Screenshot- und PDF-Erfassungsdienst. Obwohl er für schnelle Integrationen geeignet ist, hat er grundlegende architektonische Einschränkungen:
-
Bildbasierte PDFs: GrabzIterstellt Screenshot-basierte PDFs, bei denen der Text nicht auswählbar ist – im Wesentlichen Bilder im PDF-Format. Dies ist eine grundlegende Einschränkung für jeden Anwendungsfall, der Textmanipulation oder Barrierefreiheit erfordert.
-
Externe Verarbeitung: Alle Inhalte werden zur Verarbeitung an die Server von GrabzItgesendet – dies wirft Bedenken hinsichtlich Datenschutz und Compliance bei sensiblen Daten auf. Ihr HTML-Inhalt verlässt Ihre Infrastruktur.
-
Callback-Komplexität: GrabzItverwendet ein asynchrones Callback-Modell, das eine Webhook-Handling-Infrastruktur erfordert. Sie müssen Endpunkte einrichten, um die Ergebnisse zu erhalten, was die Komplexität der Architektur erhöht.
-
Preisgestaltung pro Erfassung: Das Pay-per-Use-Modell kann bei großem Umfang teuer werden. Jede PDF-Erstellung ist mit Kosten verbunden.
-
Keine Textsuche: Da PDFs bildbasiert sind, funktionieren Textsuche und -extraktion ohne OCR nicht – ein zusätzlicher Arbeitsschritt und Kostenfaktor.
-
Größere Dateigrößen: Bildbasierte PDFs sind wesentlich größer als vektorbasierte PDFs, oft 5- bis 10-mal so groß.
-
Netzwerkabhängigkeit: Ohne Internetverbindung können keine PDFs generiert werden, wodurch Offline-Szenarien unmöglich sind.
- Latenz: Jede PDF-Erzeugung erfordert einen Netzwerk-Roundtrip zu externen Servern, was im Vergleich zur lokalen In-Prozess-Erzeugung eine merkliche Latenz verursacht.
GrabzItvs IronPDF Vergleich
| Aspekt | GrabzIt | IronPDF |
|---|---|---|
| PDF-Typ | Bildbasiert (Bildschirmfoto) | Echtes Vektor-PDF |
| Textauswahl | Nicht möglich | Auswahl des Volltextes |
| Text-Suche | Benötigt OCR | Nativ durchsuchbar |
| Ort der Bearbeitung | Externe Server | Lokal/Prozess |
| Datenschutz | Extern gesendete Daten | Daten bleiben lokal |
| Latenzzeit | Netzwerk-Roundtrip (500ms-5s) | Lokale Verarbeitung (~100ms) |
| Preismodell | Pro-Erfassung | Pro-Entwickler-Lizenz |
| Offline-Fähigkeit | Nein | Ja |
| Dateigröße | Groß (Bilddaten) | Klein (Vektordaten) |
| Rückruf erforderlich | Ja (asynchron) | Nein (sync/async) |
| CSS/JS-Unterstützung | Beschränkt | Vollständige Chromium-Engine |
IronPDF integriert sich nativ in moderne .NET-Muster und läuft vollständig in einem Prozess, wodurch der Cloud-Roundtrip aus Ihrer PDF-Pipeline entfernt wird.
Migrationskomplexitätsbewertung
Geschätzter Aufwand nach Merkmalen
| Feature | Komplexität der Migration |
|---|---|
| HTML zu PDF | Sehr niedrig |
| URL zu PDF | Sehr niedrig |
| HTML zu Bild | Niedrig |
| Seitengröße/Randabstände | Niedrig |
| Callback-Handler | Niedrig |
| Wasserzeichen | Niedrig |
| Kopf-/Fußzeilen | Medium |
| Authentifizierungs-Schlüssel | Sehr niedrig |
Paradigmen-Verschiebung
Der grundlegende Shift bei dieser GrabzIt-Migration besteht in der Umstellung von asynchroner, auf Rückruffunktionen basierender Cloud-Verarbeitung auf synchrone In-Process-Generierung:
GrabzIt: Senden von HTML → Warten auf Rückruf → Abrufen des Ergebnisses vom Server
IronPDF: HTML rendern → PDF sofort erhalten
Bevor Sie beginnen
Voraussetzungen
- .NET Version:IronPDF supports .NET Framework 4.6.2+ and .NET Core 3.1+ / .NET 5+
- Lizenzschlüssel: Ihren IronPDF-Lizenzschlüssel erhalten Sie unter IronPDF.
- Infrastrukturentfernung planen: Callback-Handler und Webhook-Endpunkte für die Stilllegung dokumentieren
Die gesamte GrabzIt-Nutzung identifizieren
# Find GrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .
# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .
# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .
# Find GrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .
# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .
# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .
NuGet-Paketänderungen
# Remove GrabzIt
dotnet remove package GrabzIt
# Install IronPDF
dotnet add package IronPdf
# Remove GrabzIt
dotnet remove package GrabzIt
# Install IronPDF
dotnet add package IronPdf
Schnellstart Migration
Schritt 1: Lizenzkonfiguration aktualisieren
Vor (GrabzIt):
GrabzIt erfordert für jede Client-Instanziierung einen Anwendungsschlüssel und ein Geheimnis:
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Nach (IronPDF):
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Then create renderer without credentials
var renderer = new ChromePdfRenderer();
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Then create renderer without credentials
var renderer = new ChromePdfRenderer();
Imports IronPdf
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
' Then create renderer without credentials
Dim renderer As New ChromePdfRenderer()
Schritt 2: Aktualisieren der Namensraum-Importe
// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;
// After (IronPDF)
using IronPdf;
// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;
// After (IronPDF)
using IronPdf;
Imports IronPdf
Komplette API-Referenz
GrabzItClient-zu-IronPDF-Zuordnung
| GrabzIt-Methode | IronPDF-Äquivalent |
|---|---|
new GrabzItClient(key, secret) |
new ChromePdfRenderer() |
HTMLToPDF(html) |
renderer.RenderHtmlAsPdf(html) |
URLToPDF(url) |
renderer.RenderUrlAsPdf(url) |
HTMLToImage(html) |
pdf.ToBitmap() |
Save(callbackUrl) |
pdf.SaveAs(path) |
SaveTo(filePath) |
pdf.SaveAs(filePath) |
GetResult(id) |
Nicht anwendbar |
GetStatus(id) |
Nicht anwendbar |
Zuordnung von PDFOptions zu RenderingOptions
| GrabzItPDFOptionen | IronPDF Eigenschaft |
|---|---|
PageSize (A4, Letter) |
RenderingOptions.PaperSize |
CustomId |
Nicht anwendbar |
MarginTop |
RenderingOptions.MarginTop |
MarginBottom |
RenderingOptions.MarginBottom |
Zuordnung von ImageOptions zu IronPDF
| GrabzItImageOptions | IronPDF-Äquivalent |
|---|---|
Format (png, jpg) |
bitmap.Save(path, ImageFormat.Png) |
Width |
RenderingOptions.ViewPortWidth |
Height |
RenderingOptions.ViewPortHeight |
Beispiele für die Code-Migration
Beispiel 1: Konvertierung von HTML in PDF
Vor (GrabzIt):
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.CustomId = "my-pdf";
grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.pdf");
}
}
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.CustomId = "my-pdf";
grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.pdf");
}
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System
Module Program
Sub Main()
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Dim options As New PDFOptions()
options.CustomId = "my-pdf"
grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options)
grabzIt.SaveTo("output.pdf")
End Sub
End Module
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>")
pdf.SaveAs("output.pdf")
End Sub
End Class
Der Unterschied ist erheblich: GrabzIterfordert API-Zugangsdaten (YOUR_APPLICATION_KEY, YOUR_APPLICATION_SECRET), erstellt ein PDFOptions-Objekt mit einer benutzerdefinierten ID und das Ergebnis ist ein bildbasiertes PDF, das über externe Server gesendet wird. IronPDF's ChromePdfRenderer erzeugt lokal ein echtes Vektor-PDF mit auswählbarem Text—keine Zugangsdaten, keine Netzwerkaufrufe, keine Rückrufe. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.
Beispiel 2: Konvertierung von URL in PDF
Vor (GrabzIt):
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.PageSize = PageSize.A4;
grabzIt.URLToPDF("https://www.example.com", options);
grabzIt.SaveTo("webpage.pdf");
}
}
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.PageSize = PageSize.A4;
grabzIt.URLToPDF("https://www.example.com", options);
grabzIt.SaveTo("webpage.pdf");
}
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System
Module Program
Sub Main()
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Dim options As New PDFOptions()
options.PageSize = PageSize.A4
grabzIt.URLToPDF("https://www.example.com", options)
grabzIt.SaveTo("webpage.pdf")
End Sub
End Module
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("webpage.pdf");
}
}
// 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("webpage.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
GrabzIt erfordert die Konfiguration von PageSize.A4 über das Optionsobjekt und die Authentifizierung mit externen Servern. IronPDF's RenderUrlAsPdf()-Methode akzeptiert die URL direkt und rendert sie lokal mit einem vollständigen Chromium-Engine mit vollständiger CSS- und JavaScript-Unterstützung. Erfahren Sie mehr über die URL in PDF Konvertierung.
Beispiel 3: Konvertierung von HTML in Bilder
Vor (GrabzIt):
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new ImageOptions();
options.Format = ImageFormat.png;
options.Width = 800;
options.Height = 600;
grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.png");
}
}
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new ImageOptions();
options.Format = ImageFormat.png;
options.Width = 800;
options.Height = 600;
grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.png");
}
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System
Module Program
Sub Main()
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Dim options As New ImageOptions()
options.Format = ImageFormat.png
options.Width = 800
options.Height = 600
grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options)
grabzIt.SaveTo("output.png")
End Sub
End Module
Nach (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Drawing;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Drawing;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
}
}
Imports IronPdf
Imports System
Imports System.Drawing
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>")
Dim images = pdf.ToBitmap()
images(0).Save("output.png", System.Drawing.Imaging.ImageFormat.Png)
End Sub
End Class
GrabzIt bietet eine spezielle HTMLToImage()-Methode mit ImageOptions für Format-, Breiten- und Höhenkonfiguration.IronPDF erreicht dasselbe Ergebnis, indem zuerst HTML mit RenderHtmlAsPdf() in PDF gerendert wird und dann mit ToBitmap() in Bitmap konvertiert wird. Bei diesem Ansatz erhalten Sie sowohl die PDF- als auch die Bildausgabe in einem einzigen Rendervorgang.
Kritische Hinweise zur Migration
Keine Rückrufe erforderlich
Die wichtigste architektonische Änderung ist die vollständige Abschaffung der Callback-Handler:
// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback"); // Wait for callback...
// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string id = context.Request.QueryString["id"];
GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
GrabzItFile file = grabzIt.GetResult(id);
file.Save("output.pdf");
}
}
// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf"); // Done!Neincallback needed.
// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback"); // Wait for callback...
// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string id = context.Request.QueryString["id"];
GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
GrabzItFile file = grabzIt.GetResult(id);
file.Save("output.pdf");
}
}
// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf"); // Done!Neincallback needed.
Imports System.Web
' GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options)
grabzIt.Save("https://myserver.com/grabzit-callback") ' Wait for callback...
' Callback handler (separate endpoint)
Public Class GrabzItHandler
Implements IHttpHandler
Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim id As String = context.Request.QueryString("id")
Dim grabzIt As New GrabzItClient("APP_KEY", "APP_SECRET")
Dim file As GrabzItFile = grabzIt.GetResult(id)
file.Save("output.pdf")
End Sub
Public ReadOnly Property IsReusable As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
' IronPDF: Synchronous - result immediately available
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf") ' Done! No callback needed.
Löschen Sie alle GrabzIt-Rückruf-Handler (.ashx-Dateien, Handler-Endpunkte, Webhook-Konfiguration) nach der Migration.
Echte Vektor-PDFs
GrabzIt erstellt bildbasierte PDFs, bei denen der Text nicht auswählbar ist.IronPDF erzeugt echte Vektor-PDFs:
// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText(); // Works without OCR!
// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText(); // Works without OCR!
Imports IronPdf
' With IronPDF, text extraction works natively
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText() ' Works without OCR!
Weitere Informationen finden Sie in der Textextraktionsdokumentation.
Kleine Dateigrößen
Vektorbasierte PDFs sind in der Regel 5-10x kleiner als die bildbasierten PDFs von GrabzIt. Dies verbessert die Speicherkosten, die Downloadzeiten und die Durchführbarkeit von E-Mail-Anhängen.
API-Zugangsdaten entfernen
GrabzIt benötigt für jeden Vorgang API-Anmeldedaten:
// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET
// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET
IronPDF verwendet einen einzigen Lizenzschlüssel, der einmalig beim Start der Anwendung festgelegt wird - keine Authentifizierung pro Anfrage.
Fehlerbehebung
Ausgabe 1: GrabzItClient nicht gefunden
Problem: Nach dem Entfernen von GrabzItführen GrabzItClient-Referenzen zu Kompilierungsfehlern.
Lösung: Ersetzen durch ChromePdfRenderer:
// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");
// Replace with:
var renderer = new ChromePdfRenderer();
// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");
// Replace with:
var renderer = new ChromePdfRenderer();
' Remove:
' Dim grabzIt = New GrabzItClient("KEY", "SECRET")
' Replace with:
Dim renderer = New ChromePdfRenderer()
Ausgabe 2: PDFOptions Not Found
Problem: Die PDFOptions-Klasse existiert nicht in IronPDF.
Lösung: Verwenden Sie die RenderingOptions-Eigenschaft:
// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;
// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;
// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' GrabzIt
Dim options As New PDFOptions()
options.PageSize = PageSize.A4
' IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Ausgabe 3: Callback-Handler werden immer noch referenziert
Problem: Die Anwendung erwartet Callback-Endpunkte.
Lösung: Die Callback-Infrastruktur vollständig entfernen.IronPDF liefert die Ergebnisse synchron - es werden keine Webhooks benötigt.
Ausgabe 4: ImageOptions Not Found
Problem: Die ImageOptions-Klasse existiert nicht in IronPDF.
Lösung: Zuerst als PDF rendern, dann konvertieren:
// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
' GrabzIt
Dim options As New ImageOptions()
options.Format = ImageFormat.png
grabzIt.HTMLToImage(html, options)
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim images = pdf.ToBitmap()
images(0).Save("output.png", System.Drawing.Imaging.ImageFormat.Png)
Migrations-Checkliste
Vor der Migration
- Inventarisierung aller GrabzIt-API-Aufrufe im Quellcode
- Callback-Handler und Webhook-Endpunkte identifizieren
- Dokumentation der aktuellen GrabzIt-Optionen und -Vorlagen -IronPDF-Lizenzschlüssel erhalten
- Plan-Rückrufbearbeiter außer Betrieb nehmen
Code-Migration
- Installieren Sie das IronPDF NuGet-Paket:
dotnet add package IronPdf - Entfernen Sie das GrabzItNuGet-Paket:
dotnet remove package GrabzIt - Ersetzen Sie
GrabzItClientdurchChromePdfRenderer - Konvertieren Sie
HTMLToPDF()zuRenderHtmlAsPdf() - Konvertieren Sie
URLToPDF()zuRenderUrlAsPdf() - Ersetzen Sie
Save(callback)durchSaveAs(path) - Aktualisieren Sie die Optionen von
PDFOptionszuRenderingOptions
Infrastruktur-Migration
- Löschen Sie Rückruf-Handler-Dateien (
.ashx, usw.) - GrabzIt-API-Schlüssel aus der Konfiguration entfernen
- Webhook-URL-Konfiguration entfernen
- Fügen Sie den IronPDF Lizenzschlüssel zur Konfiguration hinzu
- Code für Abfrage/Statusprüfung entfernen
Testen
- Test der Konvertierung von HTML in PDF
- Test der URL-zu-PDF-Konvertierung
- Überprüfen, ob der Text in den ausgegebenen PDFs auswählbar ist
- Test der Textextraktion funktioniert (ohne OCR)
- Überprüfen Sie, ob die Dateigrößen kleiner sind.
- Leistungstest ohne Netzwerklatenz
Nach der Migration
- GrabzIt-Abonnement kündigen
- Archiv-Callback-Handler-Code
- Dokumentation aktualisieren
- Auf etwaige GrabzIt-bezogene Fehler achten

