Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von HiQPdf zu IronPDF in C# migriert

Migrieren Sie von HiQPdfzu IronPDF: Vollständiger C#-Migrationsleitfaden

Durch die Migration von HiQPdfzuIronPDFwird Ihr .NET-PDF-Workflow von einer älteren WebKit-basierten Rendering-Engine mit restriktiven Seitenbeschränkungen auf eine moderne, Chromium-basierte Bibliothek mit vollständiger JavaScript-Framework-Unterstützung umgestellt. Dieses Handbuch bietet einen umfassenden, schrittweisen Migrationspfad, der die 3-Seiten-Beschränkung und die fragmentierte Paketstruktur für professionelle .NET-Entwickler aufhebt.

Warum von HiQPdfzuIronPDFmigrieren

Die HiQPdf-Einschränkungen

HiQPdf ist eine kommerzielle HTML-zu-PDF-Bibliothek mit einigen Einschränkungen, die sich auf Produktionsanwendungen auswirken:

  1. Einschränkende "kostenlose" Version: Die kostenlose Version ist auf 3 Seiten begrenzt und enthält aufdringliche Wasserzeichen - im Grunde unbrauchbar für Produktionsprozesse, die eine vollständige Dokumentenerstellung erfordern.

  2. Ältere WebKit-Engine: HiQPdfverwendet eine ältere WebKit-basierte Rendering-Engine, die mit modernen JavaScript-Frameworks wie React, Angular und Vue nicht zurechtkommt.

  3. Unklare .NET Core-Unterstützung: Die Dokumentation klärt nicht explizit die Unterstützung von .NET Core / .NET 5+, was zu Unsicherheiten bei der Entwicklung moderner Anwendungen führt.

  4. Fragmentierte Pakete: Mehrere NuGet-Pakete für verschiedene Plattformen (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client) erschweren das Abhängigkeitsmanagement.

  5. Komplexe API: Erfordert ausführliche Konfiguration durch Document, Header, Footer Eigenschaftsketten statt flüssiger, intuitiver Methoden.

  6. Eingeschränkte JavaScript-Unterstützung: Die WebKit-Engine hat Probleme bei der Darstellung von Inhalten, die von modernen JavaScript-Frameworks und komplexen dynamischen Layouts erzeugt werden.

HiQPdfvsIronPDFVergleich

Aspekt HiQPdf IronPDF
Rendering-Engine WebKit-basiert (älter) Modernes Chromium
Freie Stufe 3-Seiten-Limit + Wasserzeichen 30-Tage-Testversion
Moderne JS-Unterstützung Beschränkt Vollständig (React, Angular, Vue)
.NET Core/5+ Unterstützung Mehrere Pakete erforderlich Ein einziges, einheitliches Paket
API-Entwurf Komplexe Eigenschaftsketten Saubere, fließende API
CSS3-Unterstützung Teilweise Volle Unterstützung
Dokumentation Fragmentiert Umfassend
NuGet-Paket Mehrere Varianten Einzelnes Paket

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietetIronPDFeine zukunftssichere Grundlage mit dokumentierter Unterstützung für die neuesten .NET-Versionen und eine moderne Chromium-Rendering-Engine.


Migrationskomplexitätsbewertung

Geschätzter Aufwand nach Merkmalen

Feature Komplexität der Migration Notizen
HTML zu PDF Sehr niedrig Direkte Methodenersetzung
URL zu PDF Sehr niedrig Direkte Methodenersetzung
PDFs zusammenführen Niedrig Unterschiedlicher Merge-Ansatz
Kopf-/Fußzeilen Medium Änderung der Platzhalter-Syntax
Seitengröße/Randabstände Niedrig Gleiche Einheiten (mm)
TriggerMode/Verzögerungen Niedrig Eigenschaften-Zuordnung

Paradigmen-Verschiebung

Die grundlegende Veränderung bei dieser HiQPdf-Migration ist die Verlagerung von der Eigenschaftskettenkonfiguration zu den flüssigen Rendering-Optionen:

HiQPdf: converter.Document.Header.Height = 50;
          converter.Document.Header.Add(new HtmlToPdfVariableElement(...));

IronPDF: renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { ... };

Bevor Sie beginnen

Voraussetzungen

  1. .NET Version:IronPDFunterstützt .NET Framework 4.6.2+ und .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Lizenzschlüssel: Beziehen Sie Ihren IronPDF-Lizenzschlüssel von ironpdf.com
  3. Entfernen von HiQPdf: Planen Sie, alle NuGet-Paketvarianten von HiQPdfzu entfernen

Alle HiQPdf-Nutzungen identifizieren

# Find HiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
# Find HiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
SHELL

NuGet-Paketänderungen

# Remove all HiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf.NetCore
dotnet remove package HiQPdf.NetCore.x64
dotnet remove package HiQPdf.Client

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
# Remove all HiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf.NetCore
dotnet remove package HiQPdf.NetCore.x64
dotnet remove package HiQPdf.Client

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
SHELL

Schnellstart Migration

Schritt 1: Lizenzkonfiguration aktualisieren

Vor (HiQPdf):

HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Schritt 2: Aktualisieren der Namensraum-Importe

// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Komplette API-Referenz

Hauptklassen-Zuordnung

HiQPdf-Klasse IronPDF-Klasse Notizen
HtmlToPdf ChromePdfRenderer Hauptkonverterklasse
PdfDocument PdfDocument Gleicher Name, anderer Namespace
HtmlToPdfVariableElement TextHeaderFooter oder HtmlHeaderFooter Inhalt der Kopfzeile/Fußzeile

Konvertierungsmethoden-Zuordnung

HiQPdf-Methode IronPDF-Methode Notizen
ConvertHtmlToMemory(html, baseUrl) RenderHtmlAsPdf(html) Rückgabe PdfDocument
ConvertUrlToMemory(url) RenderUrlAsPdf(url) Rückgabe PdfDocument
File.WriteAllBytes(Pfad, Bytes) pdf.SaveAs(Pfad) Direkte Speichermethode

PDF-Dokument-Methodenzuordnung

HiQPdf-Methode IronPDF-Methode Notizen
PdfDocument.FromFile(path) PdfDocument.FromFile(path) Gleicher Name der Methode
Document1.AddDocument(document2) PdfDocument.Merge(pdf1, pdf2) Statische Merge-Methode
document.WriteToFile(path) pdf.SaveAs(Pfad) Unterschiedliche Methodennamen

Kopf-/Fußzeilen-Platzhalter-Zuordnung

HiQPdf-Platzhalter IronPDFPlatzhalter Beschreibung
{CrtPage} {Seite} Aktuelle Seitenzahl
{Seitenzahl} {Gesamtseiten} Gesamtseitenzahl

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML in PDF

Vor (HiQPdf):

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Der HiQPdf-Ansatz erfordert die Erstellung einer HtmlToPdf-Instanz, den Aufruf von ConvertUrlToMemory() oder ConvertHtmlToMemory(), um ein Byte-Array zu erhalten, und dann das manuelle Schreiben von Bytes in eine Datei. Der ChromePdfRenderervonIronPDFliefert ein PdfDocument-Objekt mit einer direkten SaveAs()-Methode, wodurch der manuelle Schritt des Schreibens in eine Datei entfällt. Die moderne Chromium-Engine bietet auch ein besseres Rendering für komplexe HTML/CSS/JavaScript-Inhalte. Weitere Rendering-Optionen finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Mehrere PDFs zusammenführen

Vor (HiQPdf):

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Der HiQPdf-Ansatz erfordert das Laden von Dokumenten aus Dateien mit PdfDocument.FromFile(), den Aufruf von AddDocument() für das erste Dokument, um das zweite anzuhängen, und dann die Verwendung von WriteToFile() zum Speichern.IronPDFbietet eine sauberere statische PdfDocument.Merge()-Methode, die mehrere PdfDocument-Objekte direkt akzeptiert - es sind keine Zwischenoperationen erforderlich. Erfahren Sie mehr über das Zusammenführen und Aufteilen von PDFs.

Beispiel 3: PDF-Kopf- und -Fußzeilen mit Seitenzahlen

Vor (HiQPdf):

// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Der HiQPdf-Ansatz erfordert das Setzen von Document.Header.Height, das Erstellen von HtmlToPdfVariableElement-Objekten und den Aufruf von Add() für die Kopf- und Fußzeilenabschnitte. Platzhalter für Seitenzahlen verwenden die Syntax {CrtPage}und {PageCount}.IronPDFbietet eine sauberere TextHeaderFooter-Konfiguration mit CenterText-Eigenschaften und einer anderen Syntax für Platzhalter: {Seite}und {total-pages}. In der Kopf- und Fußzeilendokumentation finden Sie zusätzliche Optionen, einschließlich HTML-basierter Kopfzeilen.


Kritische Hinweise zur Migration

Änderung der Syntax für Platzhalter

Die wichtigste Änderung für Dokumente mit Seitenzahlen ist die Syntax der Platzhalter:

// HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"
// HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Komplette Platzhalterzuordnung:

  • {CrtPage}{page}
  • {Seitenzahl}{Gesamtseiten}

Merge Method Difference

HiQPdf modifiziert das erste Dokument an Ort und Stelle:

// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF gibt ein neues zusammengeführtes Dokument zurück:

// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Keine 3-Seiten-Begrenzung

In der kostenlosen Version von HiQPdfist die Ausgabe auf 3 Seiten mit Wasserzeichen begrenzt.IronPDFgeneriert während des Testzeitraums vollständige Dokumente ohne künstliche Einschränkungen.

Wiederverwendung von ChromePdfRenderer

Im Gegensatz zu HiQPdf, wo man für jede Konvertierung neue HtmlToPdf-Instanzen erstellt, sollte der ChromePdfRenderervonIronPDFwiederverwendet werden:

// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fehlerbehebung

Ausgabe 1: HtmlToPdf nicht gefunden

Problem: die Klasse HtmlToPdfexistiert nicht in IronPDF.

Lösung: Ersetzen Sie durch ChromePdfRenderer:

// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 2: ConvertHtmlToMemory nicht gefunden

Problem: ConvertHtmlToMemory() Methode existiert nicht.

Lösung: Verwenden Sie RenderHtmlAsPdf():

// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Problem 3: Platzhalter für Seitenzahlen funktionieren nicht

Problem: {CrtPage}und {Seitenzahl}erscheinen wörtlich in der Ausgabe.

Lösung: Aktualisierung der IronPDF-Platzhaltersyntax:

// HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"
// HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 4: HtmlToPdfVariableElement nicht gefunden

Problem: die Klasse HtmlToPdfVariableElementgibt es nicht.

Lösung: Verwenden Sie TextHeaderFooter oder HtmlHeaderFooter:

// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
};
// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Migrations-Checkliste

Vor der Migration

  • [Inventarisierung aller HiQPdf-API-Aufrufe in der Codebasis
  • [Aktuelle Seitengrößen, Ränder und Einstellungen dokumentieren
  • [Kopf-/Fußzeilen-Konfigurationen und Platzhalter identifizieren
  • [IronPDF-Lizenzschlüssel erhalten
  • [IronPDF in der Entwicklungsumgebung testen

Code-Migration

  • [Alle HiQPdfNuGet-Pakete entfernen (alle Varianten)
  • [IronPdf NuGet-Paket installieren: dotnet add package IronPdf
  • [Namespace-Importe aktualisieren
  • [Ersetzen Sie HtmlToPdfdurch ChromePdfRenderer
  • [Konvertieren Sie ConvertHtmlToMemory() in RenderHtmlAsPdf()
  • [Konvertiere ConvertUrlToMemory() in RenderUrlAsPdf()
  • [Aktualisieren Sie Kopf-/Fußzeilen-Platzhalter ({CrtPage}{page}, {Seitenzahl}{total-pages})
  • [Ersetze HtmlToPdfVariableElementmit TextHeaderFooter
  • [Aktualisieren von Zusammenführungsoperationen (AddDocumentPdfDocument.Merge)
  • [Initialisierung des Lizenzschlüssels beim Start hinzufügen

Testing

  • [Test der Konvertierung von HTML in PDF
  • [Testen Sie die Konvertierung von URL in PDF
  • [Überprüfen Sie die Darstellung von Kopf- und Fußzeilen
  • [Platzhalter für Seitenzahlen überprüfen
  • [PDF-Zusammenführung testen
  • [Testen Sie JavaScript-lastige Seiten (jetzt mit Chromium unterstützt)

Post-Migration

  • [HiQPdf-Seriennummer aus der Konfiguration entfernen
  • [Dokumentation aktualisieren
  • [Überwachen Sie etwaige Unterschiede in der Darstellung

Abschluss

Die Migration von HiQPdfzuIronPDFbietet mehrere bedeutende Vorteile für .NET-Anwendungen. Sie erhalten eine moderne Chromium-Rendering-Engine mit vollständiger Unterstützung für React, Angular, Vue und komplexe JavaScript-Frameworks. Die 3-Seiten-Beschränkung mit Wasserzeichen entfällt und wird durch eine echte Testversion mit vollem Funktionsumfang ersetzt. Ein einziges, einheitliches NuGet-Paket ersetzt die fragmentierten HiQPdf-Varianten.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Klassenersetzung: HtmlToPdfChromePdfRenderer
  2. Methodenersetzung: ConvertHtmlToMemory()RenderHtmlAsPdf().BinaryData
  3. Merge-Ansatz: Document1.AddDocument(document2)PdfDocument.Merge(pdf1, pdf2)
  4. Placeholder Syntax: {CrtPage}{page}, {Seitenzahl}{total-pages}
  5. Kopf-/Fußzeile: HtmlToPdfVariableElementTextHeaderFooter

Entdecken Sie die vollständige IronPDF-Dokumentation, Tutorials und API-Referenz, um Ihre HiQPdf-Migration zu beschleunigen.

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