Wie man PDF UA Format Dokumente in C# exportiert
HiQPdf ist eine kommerzielle HTML-zu-PDF-Bibliothek, veröffentlicht von HiQPdfSoftware (aktuell HiQPdf 18.0.2 auf nuget.org, Februar 2026). Gemeinsame Gründe, warum Entwickler Alternativen bewerten:
-
Eingeschränkte kostenlose Version:
HiQPdf.Freebegrenzt den Ausgabenumfang auf 3 Seiten pro Dokument — nützlich zur Evaluierung, nicht für Produktionsanwendungen, die vollständige Dokumentenerstellung erfordern. -
WebKit in der Klassischen Linie: Das klassische
HiQPdf-Paket verwendet eine ältere, WebKit-basierte Engine, die bei modernen JavaScript-Frameworks Schwierigkeiten haben kann. HiQPdfliefert eine auf Chromium basierende Variante (HiQPdf.NG/HiQPdf.Chromium.Windows, plus einen Linux-Build), aber der meiste bestehende Code zielt auf die klassische Engine ab. -
.NET-Unterstützung über Pakete verteilt: .NET Framework, .NET Core und .NET Standard 2.0 werden alle unterstützt, aber über separate NuGet-IDs aufgeteilt (HiQPdf, HiQPdf_NetCore, HiQPdf.NG, HiQPdf.Chromium.Windows, HiQPdf_x64), aus denen Sie wählen müssen.
-
Zerklüftete Pakete: Mehrere NuGet-IDs für verschiedene Plattformen (
HiQPdf,HiQPdf.Free,HiQPdf_NetCore,HiQPdf.NG,HiQPdf.Chromium.Windows) erschweren das Abhängigkeitsmanagement. -
Ausführliche Konfiguration: Erfordert Einrichtung über
Document,Header,FooterEigenschaftsketten statt einer flüssigen Rendering-Optionen-API. - Lizenzierungskosten pro Entwickler summieren sich: $245 Start / $495 Entwickler / $795 Team / $1.095 Enterprise (unbefristet, erstes Jahr mit Updates inklusive).
HiQPdfvs IronPDF Vergleich
| Aspekt | HiQPdf | IronPDF |
|---|---|---|
| Rendering-Engine | WebKit (Classic HiQPdf) or Chromium (HiQPdf.NG / HiQPdf.Chromium.Windows) |
Modernes Chromium |
| Freie Stufe | HiQPdf.Free 3-Seiten-Limit |
30-Tage-Testversion |
| Moderne JS-Unterstützung | Eingeschränkt bei Classic; modern auf NG/Chromium | Vollständig (React, Angular, Vue) |
| .NET Core/5+ Unterstützung | Unterstützt, aber über mehrere NuGet-Pakete aufgeteilt | Ein einziges, einheitliches Paket |
| API-Entwurf | Eigenschaftsketten | Fließende Rendering-Optionen |
| CSS3-Unterstützung | Teilweise bei Classic; vollständig auf NG | Volle Unterstützung |
| Dokumentation | Über Produktlinien fragmentiert | Umfassend |
| NuGet-Paket | Mehrere Varianten | Einzelnes Paket |
IronPDF-Dokumente unterstützen aktuelle .NET-Versionen (.NET Framework 4.6.2+, .NET 6, 7, 8, 9) auf einer modernen Chromium-Rendering-Engine.
Migrationskomplexitätsbewertung
Geschätzter Aufwand nach Merkmalen
| Feature | Komplexität der Migration |
|---|---|
| HTML zu PDF | Sehr niedrig |
| URL zu PDF | Sehr niedrig |
| PDFs zusammenführen | Niedrig |
| Kopf-/Fußzeilen | Medium |
| Seitengröße/Randabstände | Niedrig |
| TriggerMode/Verzögerungen | Niedrig |
Paradigmen-Verschiebung
Der grundlegende Shift bei dieser HiQPdf-Migration besteht in der Umstellung von der Konfiguration von Eigenschaftsketten auf flexible Rendering-Optionen:
HiQPdf: converter.Document.Header.Height = 50;
converter.Document.Header.Add(new HtmlToPdfVariableElement(...));
IronPDF: renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { ... };
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.
- HiQPdf entfernen: Es ist geplant, alle HiQPdf- NuGet -Paketvarianten zu 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" .
NuGet-Paketänderungen
# Remove all HiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf_NetCore
dotnet remove package HiQPdf_x64
dotnet remove package HiQPdf.NG
dotnet remove package HiQPdf.Chromium.Windows
# Install IronPDF(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_x64
dotnet remove package HiQPdf.NG
dotnet remove package HiQPdf.Chromium.Windows
# Install IronPDF(single package for all platforms)
dotnet add package IronPdf
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";
Dim converter As New HtmlToPdf()
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER"
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";
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;
Imports IronPdf
Imports IronPdf.Rendering
Komplette API-Referenz
Hauptklassen-Zuordnung
| HiQPdf-Klasse | IronPDF-Klasse |
|---|---|
HtmlToPdf |
ChromePdfRenderer |
PdfDocument |
PdfDocument |
HtmlToPdfVariableElement |
TextHeaderFooter oder HtmlHeaderFooter |
Konvertierungsmethoden-Zuordnung
| HiQPdf-Methode | IronPDF-Methode |
|---|---|
ConvertHtmlToMemory(html, baseUrl) |
RenderHtmlAsPdf(html) |
ConvertUrlToMemory(url) |
RenderUrlAsPdf(url) |
File.WriteAllBytes(path, bytes) |
pdf.SaveAs(path) |
PDF-Dokument-Methodenzuordnung
| HiQPdf-Methode | IronPDF-Methode |
|---|---|
PdfDocument.FromFile(path) |
PdfDocument.FromFile(path) |
document1.AddDocument(document2) |
PdfDocument.Merge(pdf1, pdf2) |
document.WriteToFile(path) |
pdf.SaveAs(path) |
Kopf-/Fußzeilen-Platzhalter-Zuordnung
| HiQPdf-Platzhalter | IronPDF Platzhalter | Beschreibung |
|---|---|---|
{CrtPage} |
{page} |
Aktuelle Seitenzahl |
{PageCount} |
{total-pages} |
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);
}
}
Imports HiQPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlToPdfConverter As New HtmlToPdf()
Dim pdfBuffer As Byte() = htmlToPdfConverter.ConvertUrlToMemory("https://example.com")
System.IO.File.WriteAllBytes("output.pdf", pdfBuffer)
' Convert HTML string
Dim html As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
Dim pdfFromHtml As Byte() = htmlToPdfConverter.ConvertHtmlToMemory(html, "")
System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml)
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://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");
}
}
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("output.pdf")
' Convert HTML string
Dim html As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
Dim pdfFromHtml = renderer.RenderHtmlAsPdf(html)
pdfFromHtml.SaveAs("fromhtml.pdf")
End Sub
End Module
Der HiQPdf-Ansatz erfordert die Erstellung einer HtmlToPdf-Instanz, den Aufruf von ConvertUrlToMemory() oder ConvertHtmlToMemory(), um ein Byte-Array zu erhalten, und das manuelle Schreiben der Bytes in eine Datei. IronPDFs ChromePdfRenderer gibt ein PdfDocument-Objekt mit einer direkten SaveAs()-Methode zurück und eliminiert den manuellen Dateischreibungsschritt. Die moderne Chromium-Engine bietet außerdem eine bessere Wiedergabe 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");
}
}
Imports HiQPdf
Imports System
Module Program
Sub Main()
' Create first PDF
Dim converter1 As New HtmlToPdf()
Dim pdf1 As Byte() = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "")
System.IO.File.WriteAllBytes("doc1.pdf", pdf1)
' Create second PDF
Dim converter2 As New HtmlToPdf()
Dim pdf2 As Byte() = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "")
System.IO.File.WriteAllBytes("doc2.pdf", pdf2)
' Merge PDFs
Dim document1 As PdfDocument = PdfDocument.FromFile("doc1.pdf")
Dim document2 As PdfDocument = PdfDocument.FromFile("doc2.pdf")
document1.AddDocument(document2)
document1.WriteToFile("merged.pdf")
End Sub
End Module
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");
}
}
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim renderer = New ChromePdfRenderer()
' Create first PDF
Dim pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>")
pdf1.SaveAs("doc1.pdf")
' Create second PDF
Dim pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>")
pdf2.SaveAs("doc2.pdf")
' Merge PDFs
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End Module
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.IronPDF bietet eine sauberere statische PdfDocument.Merge()-Methode, die mehrere PdfDocument-Objekte direkt akzeptiert—keine Zwischen-Dateioperationen 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);
}
}
Imports HiQPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlToPdfConverter As New HtmlToPdf()
' Add header
htmlToPdfConverter.Document.Header.Height = 50
Dim headerHtml As 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
Dim footerHtml As New HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "")
htmlToPdfConverter.Document.Footer.Add(footerHtml)
Dim pdfBuffer As Byte() = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "")
System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer)
End Sub
End Class
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");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
' Configure header and footer
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Page Header",
.FontSize = 12
}
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.CenterText = "Page {page} of {total-pages}",
.FontSize = 10
}
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>")
pdf.SaveAs("header-footer.pdf")
End Sub
End Class
Der HiQPdf-Ansatz erfordert das Setzen von Document.Header.Height, das Erstellen von HtmlToPdfVariableElement-Objekten und den Aufruf von Add() auf den Kopf-/Fußzeilenabschnitten. Platzhalter für Seitennummern verwenden die {CrtPage}- und {PageCount}-Syntax.IronPDF bietet eine sauberere TextHeaderFooter-Konfiguration mit CenterText-Eigenschaften und einer anderen Platzhaltersyntax: {page} 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}"
//IronPDF placeholders
"Page {page} of {total-pages}"
// HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"
//IronPDF placeholders
"Page {page} of {total-pages}"
' HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"
' IronPDF placeholders
"Page {page} of {total-pages}"
Komplette Platzhalterzuordnung:
{CrtPage}→{page}{PageCount}→{total-pages}
Unterschiede der Zusammenführungsmethode
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");
' HiQPdf: Modifies document1
document1.AddDocument(document2)
document1.WriteToFile("merged.pdf")
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");
' IronPDF: Returns new document
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Keine 3-Seiten-Begrenzung
In der kostenlosen Version von HiQPdfist die Ausgabe auf 3 Seiten mit Wasserzeichen begrenzt.IronPDF generiert während des Testzeitraums vollständige Dokumente ohne künstliche Einschränkungen.
Wiederverwendung von ChromePdfRenderer
Im Gegensatz zu HiQPdf, wo Sie möglicherweise neue HtmlToPdf-Instanzen für jede Konvertierung erstellen, sollte IronPDFs ChromePdfRenderer wiederverwendet 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);
' IronPDF: Create once, reuse
Dim renderer As New ChromePdfRenderer()
Dim pdf1 = renderer.RenderHtmlAsPdf(html1)
Dim pdf2 = renderer.RenderHtmlAsPdf(html2)
Fehlerbehebung
Ausgabe 1: HtmlToPdf nicht gefunden
Problem: HtmlToPdf-Klasse existiert nicht in IronPDF.
Lösung: Ersetzen durch ChromePdfRenderer:
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// IronPDF
var renderer = new ChromePdfRenderer();
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// IronPDF
var renderer = new ChromePdfRenderer();
' HiQPdf
Dim htmlToPdfConverter As New HtmlToPdf()
' IronPDF
Dim renderer As New ChromePdfRenderer()
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;
' HiQPdf
Dim pdfBytes As Byte() = converter.ConvertHtmlToMemory(html, "")
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes As Byte() = pdf.BinaryData
Problem 3: Platzhalter für Seitenzahlen funktionieren nicht
Problem: {CrtPage} und {PageCount} erscheinen wörtlich im Output.
Lösung: Aktualisierung der IronPDF Platzhaltersyntax:
// HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"
//IronPDF syntax
"Page {page} of {total-pages}"
// HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"
//IronPDF syntax
"Page {page} of {total-pages}"
' HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"
' IronPDF syntax
"Page {page} of {total-pages}"
Ausgabe 4: HtmlToPdfVariableElement nicht gefunden
Problem: HtmlToPdfVariableElement-Klasse existiert 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
};
' HiQPdf
Dim headerHtml As New HtmlToPdfVariableElement("<div>Header</div>", "")
converter.Document.Header.Add(headerHtml)
' IronPDF
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Header",
.FontSize = 12
}
Migrations-Checkliste
Vor der Migration
- Inventarisierung aller HiQPdf-API-Aufrufe im Quellcode
- Dokumentieren Sie die aktuellen Seitengrößen, Ränder und Einstellungen
- Kopf-/Fußzeilenkonfigurationen und Platzhalter identifizieren -IronPDF-Lizenzschlüssel erhalten -IronPDF in der Entwicklungsumgebung testen
Code-Migration
- Entfernen Sie alle HiQPdfNuGet Pakete (alle Varianten)
- Installieren Sie das IronPDF NuGet-Paket:
dotnet add package IronPdf - Namespace-Importe aktualisieren
- Ersetzen Sie
HtmlToPdfdurchChromePdfRenderer - Konvertieren Sie
ConvertHtmlToMemory()zuRenderHtmlAsPdf() - Konvertieren Sie
ConvertUrlToMemory()zuRenderUrlAsPdf() - Platzhalter für Kopf-/Fußzeilen aktualisieren (
{CrtPage}→{page},{PageCount}→{total-pages}) - Ersetzen Sie
HtmlToPdfVariableElementdurchTextHeaderFooter - Aktualisieren Sie die Zusammenführungsoperationen (
AddDocument→PdfDocument.Merge) - Lizenzschlüsselinitialisierung beim Start hinzufügen
Testen
- Test der Konvertierung von HTML in PDF
- Test der URL-zu-PDF-Konvertierung
- Überprüfung der Darstellung von Kopf- und Fußzeile
- Seitenzahlenplatzhalter überprüfen
- PDF-Zusammenführung testen
- Testen von JavaScript-lastigen Seiten (jetzt mit Chromium unterstützt)
Nach der Migration
- Entfernen Sie die HiQPdf-Seriennummer aus der Konfiguration
- Dokumentation aktualisieren
- Auf etwaige Darstellungsunterschiede achten

