IRONSOFTWAREHOME
VIDEOS

Wie man PDF UA Format Dokumente in C# exportiert

Curtis Chau
Curtis Chau
Updated: 19. Juli 2026

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:

  1. Eingeschränkte kostenlose Version: HiQPdf.Free begrenzt den Ausgabenumfang auf 3 Seiten pro Dokument — nützlich zur Evaluierung, nicht für Produktionsanwendungen, die vollständige Dokumentenerstellung erfordern.

  2. 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.

  3. .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.

  4. Zerklüftete Pakete: Mehrere NuGet-IDs für verschiedene Plattformen (HiQPdf, HiQPdf.Free, HiQPdf_NetCore, HiQPdf.NG, HiQPdf.Chromium.Windows) erschweren das Abhängigkeitsmanagement.

  5. Ausführliche Konfiguration: Erfordert Einrichtung über Document, Header, Footer Eigenschaftsketten statt einer flüssigen Rendering-Optionen-API.

  6. Lizenzierungskosten pro Entwickler summieren sich: $245 Start / $495 Entwickler / $795 Team / $1.095 Enterprise (unbefristet, erstes Jahr mit Updates inklusive).

HiQPdfvs IronPDF Vergleich

AspektHiQPdfIronPDF
Rendering-EngineWebKit (Classic HiQPdf) or Chromium (HiQPdf.NG / HiQPdf.Chromium.Windows)Modernes Chromium
Freie StufeHiQPdf.Free 3-Seiten-Limit30-Tage-Testversion
Moderne JS-UnterstützungEingeschränkt bei Classic; modern auf NG/ChromiumVollständig (React, Angular, Vue)
.NET Core/5+ UnterstützungUnterstützt, aber über mehrere NuGet-Pakete aufgeteiltEin einziges, einheitliches Paket
API-EntwurfEigenschaftskettenFließende Rendering-Optionen
CSS3-UnterstützungTeilweise bei Classic; vollständig auf NGVolle Unterstützung
DokumentationÜber Produktlinien fragmentiertUmfassend
NuGet-PaketMehrere VariantenEinzelnes 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

FeatureKomplexität der Migration
HTML zu PDFSehr niedrig
URL zu PDFSehr niedrig
PDFs zusammenführenNiedrig
Kopf-/FußzeilenMedium
Seitengröße/RandabständeNiedrig
TriggerMode/VerzögerungenNiedrig

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() { ... };
Text

Bevor Sie beginnen

Voraussetzungen

  1. **.NET Version:**IronPDF supports .NET Framework 4.6.2+ and .NET Core 3.1+ / .NET 5+
  2. Lizenzschlüssel: Ihren IronPDF-Lizenzschlüssel erhalten Sie unter IronPDF.
  3. 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" .
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_x64
dotnet remove package HiQPdf.NG
dotnet remove package HiQPdf.Chromium.Windows

# Install IronPDF(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";

Nach (IronPDF):

// 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;

Komplette API-Referenz

Hauptklassen-Zuordnung

HiQPdf-KlasseIronPDF-Klasse
HtmlToPdfChromePdfRenderer
PdfDocumentPdfDocument
HtmlToPdfVariableElementTextHeaderFooter oder HtmlHeaderFooter

Konvertierungsmethoden-Zuordnung

HiQPdf-MethodeIronPDF-Methode
ConvertHtmlToMemory(html, baseUrl)RenderHtmlAsPdf(html)
ConvertUrlToMemory(url)RenderUrlAsPdf(url)
File.WriteAllBytes(path, bytes)pdf.SaveAs(path)

PDF-Dokument-Methodenzuordnung

HiQPdf-MethodeIronPDF-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-PlatzhalterIronPDF PlatzhalterBeschreibung
{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);
    }
}

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");
    }
}

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");
    }
}

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");
    }
}

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);
    }
}

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");
    }
}

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}"
C#

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");

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

// IronPDF: Returns new document
var 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);

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();

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;

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}"
C#

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
};

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 HtmlToPdf durch ChromePdfRenderer
  • Konvertieren Sie ConvertHtmlToMemory() zu RenderHtmlAsPdf()
  • Konvertieren Sie ConvertUrlToMemory() zu RenderUrlAsPdf()
  • Platzhalter für Kopf-/Fußzeilen aktualisieren ({CrtPage}{page}, {PageCount}{total-pages})
  • Ersetzen Sie HtmlToPdfVariableElement durch TextHeaderFooter
  • Aktualisieren Sie die Zusammenführungsoperationen (AddDocumentPdfDocument.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

Hinweis:: HiQPdf ist ein eingetragenes Warenzeichen seines jeweiligen Inhabers. Diese Seite steht in keiner Verbindung mit, wird nicht unterstützt oder gesponsert von HiQPdfSoftware. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.
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 Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.