IRONSOFTWAREHOME
VIDEOS

Wie man XAML zu PDF in NET MAUI konvertiert | IronPDF

Curtis Chau
Curtis Chau
Updated: 19. Juli 2026

Der Wechsel von Spire.PDF zu IronPDF verlagert Ihre PDF-Generierung von einem veralteten HTML-Pfad, der häufig textbasierte Bilder erzeugt, zu einem Chromium-Pipeline, der echten, wählbaren, durchsuchbaren Text erzeugt. Diese Anleitung bietet einen vollständigen schrittweisen Migrationspfad, der die HTML-Rendering-Trad-offs von Spire.PDF und die berichteten Einbettungsprobleme bei Schriftarten abdeckt.

Warum von Spire.PDF zu IronPDF migrieren

Spire verstehen.PDF

Spire.PDF ist eine robuste, kommerzielle PDF-Bibliothek, die für .NET-Entwickler entwickelt wurde, um PDF-Dokumente effizient zu verarbeiten. Spire.PDF hat sich in der Programmier-Community aufgrund seiner spezifischen Fähigkeiten, insbesondere bei Legacy-Anwendungen, einen Namen gemacht und lässt sich nahtlos in andere Komponenten des E-iceblue-Toolsets integrieren.

Spire.PDF hat jedoch einige grundsätzliche Probleme, die sich auf die reale Nutzung auswirken, insbesondere im Bereich der HTML-zu-PDF-Konvertierung und der Unterstützung moderner Webstandards.

Kritische technische Fragen

ProblemAuswirkungenIronPDF Lösung
Text wird auf dem veralteten HTML-Pfad oft als Bilder gerendertPDFs nicht durchsuchbar, nicht zugänglich, Text kann nicht kopiert werdenEchte Textwiedergabe
IE/Edge Legacy oder QtWebKit-Abhängigkeit auf dem veralteten PfadVeraltetes Rendering, moderne CSS-ProblemeGebündeltes modernes Chromium
Berichtete Schriftarten-EinbettungsproblemeDokumente sehen auf anderen Systemen falsch ausZuverlässige Handhabung von Schriftarten
Großer EinsatzbereichHöherer SpeicherverbrauchGebündeltes Chromium-Laufzeit
Begrenztes CSS auf dem veralteten PfadModerne Layouts werden nicht korrekt wiedergegebenVollständige CSS3-Unterstützung

Das Kernproblem: Bildbasierte PDFs

Ein gemeldetes Manko des veralteten HTML-Pfads von Spire.PDF ist seine Neigung, Text innerhalb von HTML-Dokumenten als Bilder zu rendern. Dies erzeugt PDFs, in denen Text nicht wählbar oder durchsuchbar ist - eine Einschränkung für Anwendungen, die Suche oder Textinteraktion benötigen.

Wenn Sie die Methode LoadFromHTML() von Spire.PDF auf der älteren Engine verwenden, wird Text häufig als Bitmap-Bilder gerendert, anstatt als tatsächlicher Text, was diese Probleme verursacht:

  • Der Text kann NICHT ausgewählt werden
  • Der Text darf NICHT durchsucht werden
  • Text darf NICHT kopiert werden
  • Bildschirmlesegeräte können sie NICHT lesen (Verstoß gegen die Zugänglichkeit)
  • Dateigröße ist VIEL größer
  • Zoomen verursacht Pixelbildung

Spire.PDF vs IronPDF Vergleich

FeatureSpire.PDFIronPDF
HTML zu PDF RenderingVeraltetes IE/QtWebKit standardmäßig; Opt-in ChromeHtmlConverter (erfordert Chrome-System) seit v10.7.21Gebündeltes Chromium (modern, keine zusätzliche Installation)
Textausgabe (HTML-Pfad)Wird häufig als Bilder auf dem veralteten Pfad gerendertEchter Text (wählbar und durchsuchbar)
SchriftbehandlungProbleme auf dem veralteten Pfad gemeldetZuverlässige Handhabung von Schriftarten
CSS3-UnterstützungAuf dem veralteten Pfad begrenztVoll
Flexbox/GridAuf dem veralteten Pfad nicht unterstütztUnterstützt
JavaScriptAuf dem veralteten Pfad begrenztVollständig ES6+
PDF BarrierefreiheitSchlecht auf dem veralteten Pfad (bildbasierte Ausgabe)Markierte Textausgabe
API-EntwurfViele Overloads, manuelle SeiteneinstellungenEinzelner fließender Renderer
LizenzierungFreemium/KommerziellKommerziell

Unter modernem .NET,IronPDF adressiert die HTML-zu-PDF-Trad-offs von Spire.PDF, indem es Text als tatsächlichen wählbaren Text anstatt als Bilder rendert, sodass die resultierenden PDFs durchsuchbar und zugänglich sind.


Bevor Sie beginnen

Voraussetzungen

  1. .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
  3. IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.

NuGet-Paketänderungen

# Remove Spire.PDF
dotnet remove package Spire.PDF
dotnet remove package FreeSpire.PDF  # If using free version

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Komplette API-Referenz

Namensraumänderungen

// Before: Spire.PDF
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.HtmlConverter;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;

Kern-API-Zuordnungen

Spire.PDFIronPDF
new PdfDocument()new ChromePdfRenderer()
pdf.LoadFromHTML()renderer.RenderHtmlAsPdf()
pdf.LoadFromFile()PdfDocument.FromFile()
pdf.SaveToFile()pdf.SaveAs()
pdf.Close()Nicht erforderlich
pdf.Pages.Add()renderer.RenderHtmlAsPdf()
pdf.InsertPageRange()PdfDocument.Merge()
page.Canvas.DrawString()TextStamper + ApplyStamp()
PdfFontCSS-Styling in HTML
PdfBrushCSS-Styling in HTML

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML in PDF

Vor (Spire.PDF):

// NuGet: Install-Package Spire.PDF
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System;

class Program
{
    static void Main()
    {
        PdfDocument pdf = new PdfDocument();
        PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
        
        string htmlString = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
        
        pdf.LoadFromHTML(htmlString, false, true, true);
        pdf.SaveToFile("output.pdf");
        pdf.Close();
    }
}

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string htmlString = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlString);
        pdf.SaveAs("output.pdf");
    }
}

Dieses Beispiel verdeutlicht den grundlegenden Unterschied in der HTML-Darstellung. Spire.PDF verwendet LoadFromHTML() mit einem PdfHtmlLayoutFormat-Objekt, was oft dazu führt, dass Text als Bitmap-Bilder gerendert wird. Das Ergebnis sind PDFs, in denen die Benutzer keinen Text auswählen, kopieren oder suchen können.

IronPDF verwendet einen ChromePdfRenderer mit RenderHtmlAsPdf() und erzeugt wahren Text, der vollständig auswählbar, durchsuchbar und zugänglich ist. Kein Close()-Aufruf erforderlich - IronPDF verwendet das Dispose-Muster für die automatische Bereinigung. Siehe die HTML zu PDF-Dokumentation für umfassende Beispiele.

Beispiel 2: Zusammenführen mehrerer PDFs

Vor (Spire.PDF):

// NuGet: Install-Package Spire.PDF
using Spire.Pdf;
using System;

class Program
{
    static void Main()
    {
        PdfDocument pdf1 = new PdfDocument();
        pdf1.LoadFromFile("document1.pdf");
        
        PdfDocument pdf2 = new PdfDocument();
        pdf2.LoadFromFile("document2.pdf");
        
        pdf1.InsertPageRange(pdf2, 0, pdf2.Pages.Count - 1);
        
        pdf1.SaveToFile("merged.pdf");
        pdf1.Close();
        pdf2.Close();
    }
}

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(pdf1, pdf2);
        
        merged.SaveAs("merged.pdf");
    }
}

Spire.PDF erfordert das manuelle Laden jedes Dokuments mit new PdfDocument() + LoadFromFile(), dann die Verwendung von InsertPageRange(), um festzulegen, welche Seiten eingefügt werden sollen, und schließlich den Aufruf von Close() für jedes Dokument.

IronPDF verwendet das einfachere PdfDocument.FromFile()-Muster und eine statische PdfDocument.Merge()-Methode, die mehrere Dokumente akzeptiert. Keine Close()-Aufrufe erforderlich. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Hinzufügen von Text zu einer PDF-Datei

Vor (Spire.PDF):

// NuGet: Install-Package Spire.PDF
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System;

class Program
{
    static void Main()
    {
        PdfDocument pdf = new PdfDocument();
        PdfPageBase page = pdf.Pages.Add();
        
        PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 20);
        PdfBrush brush = new PdfSolidBrush(Color.Black);
        
        page.Canvas.DrawString("Hello from Spire.PDF!", font, brush, new PointF(50, 50));
        
        pdf.SaveToFile("output.pdf");
        pdf.Close();
    }
}

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body></body></html>");
        
        var textStamper = new TextStamper()
        {
            Text = "Hello from IronPDF!",
            FontSize = 20,
            VerticalOffset = 50,
            HorizontalOffset = 50
        };
        
        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("output.pdf");
    }
}

Spire.PDF verwendet ein zeichenflächenbasiertes Modell mit PdfFont, PdfBrush und page.Canvas.DrawString(), um Text mit PointF an bestimmten Koordinaten zu positionieren.

IronPDF verwendet ein TextStamper-Objekt mit intuitiven Eigenschaften wie Text, FontSize, VerticalOffset und HorizontalOffset, und wendet es dann mit ApplyStamp() an. Dieser Ansatz ist deklarativer und leichter zu pflegen.


Das Text-als-Bilder-Problem

Warum dies wichtig ist

Wenn Spire.PDF HTML in PDF konvertiert und dabei bildbasiertes Rendering verwendet, verlieren Ihre Dokumente wesentliche Funktionen:

1. Keine Textsuche: Benutzer können nicht mit Strg+F nach Text suchen. Dokumentenmanagementsysteme können Inhalte nicht indizieren.

2. Keine Textauswahl/Kopierfunktion: Benutzer, die ein Zitat, eine Referenz oder Daten kopieren möchten, können keinen Text auswählen – es handelt sich um ein Bild.

3. Verstöße gegen die Barrierefreiheit: Bildbasierte PDFs erfüllen nicht die Anforderungen der WCAG 2.1, des Section 508 (US-Regierung), der ADA und der Bildschirmleseprogramme.

4. Große Dateigrößen: Bildbasierte Ausgaben aus dem veralteten HTML-Pfad können Dateien erzeugen, die eine Größenordnung größer sind als die textbasierte Ausgabe, die IronPDF für denselben Inhalt erzeugt.

Erkennung: Ist Ihre PDF-Datei bildbasiert?

Öffnen Sie Ihr mit Spire.PDF erstelltes Dokument und führen Sie diese Tests durch:

  1. Textauswahl: Klicken und ziehen Sie über den Text. Wenn nichts hervorgehoben wird → IMAGE-BASED
  2. Strg+F Suche: Suche nach einem beliebigen Wort auf der Seite. Wenn "Keine Treffer gefunden" → IMAGE-BASED
  3. Kopieren/Einfügen: Text auswählen und in den Editor kopieren. Wenn sich nichts einfügt → IMAGE-BASED

Das Problem des Veralteten HTML-Engines

Spire.PDF's Rendering Engines

Spire.PDFs LoadFromHTML(...) bot historisch zwei Wege: einen nicht-Plugin-Weg, unterstützt durch das Windows Internet Explorer/Edge Legacy WebBrowser-Steuerelement, und einen separat heruntergeladenen QT/WebKit-Plugin-Weg. Spire.PDF 10.7.21 (Mitte 2024) fügte eine dritte Option hinzu, ChromeHtmlConverter, die ein lokal installiertes Google Chrome verwendet - aber es ist opt-in und die ursprüngliche LoadFromHTML-API standardmäßig auf den Legacy-Engines bleibt. IE/Edge Legacy wurde von Microsoft 2022 eingestellt, modernes CSS ist auf dem veralteten Pfad unzuverlässig, JavaScript-Support ist teilweise und das Rendering kann zwischen Systemen variieren.

Modernes CSS, das in Spire scheitert.PDF

<!-- This HTML renders incorrectly in Spire.PDF -->
<div style="display: flex; justify-content: space-between; gap: 20px;">
    <div style="flex: 1;">Column 1</div>
    <div style="flex: 1;">Column 2</div>
</div>

<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;">
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
</div>

<!-- CSS Variables don't work -->
<style>
:root { --primary-color: #007bff; }
h1 { color: var(--primary-color); }
</style>
HTML

IronPDF verwendet modernes Chromium-Rendering, so dass alle diese CSS-Funktionen korrekt funktionieren.


Neue Funktionen nach der Migration

Nach der Migration auf IronPDF erhalten Sie Funktionen, die Spire.PDF nicht bieten kann:

Auswählbarer, durchsuchbarer Text

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Important Contract</h1>");
pdf.SaveAs("contract.pdf");

// Result:
// ✅ Text is fully selectable
// ✅ Text is searchable with Ctrl+F
// ✅ Text can be copied to clipboard
// ✅ Screen readers work perfectly
// ✅ File size is compact
// ✅ Zooming is crystal clear

Moderne CSS-Unterstützung

var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; }
    .container { display: flex; gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(3, 1fr); }
</style>
<div class='container'>
    <div style='flex: 1; color: var(--primary)'>Column 1</div>
    <div style='flex: 1'>Column 2</div>
</div>
<div class='grid'>
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!

HTML-basierte Wasserzeichen

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.ApplyWatermark(@"
    <div style='
        font-size: 48px;
        color: rgba(255, 0, 0, 0.5);
        transform: rotate(-45deg);
    '>DRAFT</div>");

Migrations-Checkliste

Vor der Migration

  • Alle Verwendungen von Spire.PDF im Quellcode erfassen
  • Bestehende PDFs auf Textauswahlbarkeit prüfen (Erkennung kritischer Probleme)
  • Dokument LoadFromHTML()-Aufrufe (diese haben die höchste Priorität zum Beheben)
  • Den IronPDF Lizenzschlüssel erhalten Sie unter IronPDF

Code-Aktualisierungen

  • Entfernen Sie das Spire.PDF NuGet-Paket (und FreeSpire.PDF, wenn Sie die kostenlose Version verwenden)
  • Installieren Sie das IronPdf NuGet-Paket
  • Aktualisieren Sie die Namespace-Importe (using Spire.Pdf; → using IronPdf;)
  • Ersetzen Sie LoadFromHTML() durch RenderHtmlAsPdf() (KRITISCHE BEHEBUNG)
  • Ersetzen Sie new PdfDocument() + LoadFromFile() durch PdfDocument.FromFile()
  • Ersetzen Sie InsertPageRange() durch PdfDocument.Merge()
  • Ersetzen Sie Canvas.DrawString() durch TextStamper + ApplyStamp()
  • Ersetzen Sie SaveToFile() durch SaveAs()
  • Entfernen Sie alle Close()-Aufrufe (nicht erforderlich in IronPDF)
  • Lizenzinitialisierung beim Anwendungsstart hinzufügen

Testen

  • Überprüfen, ob der Text in den generierten PDFs auswählbar ist (WICHTIGER TEST)
  • Überprüfung der Verbesserungen beim CSS-Rendering (Flexbox/Grid funktionieren jetzt)
  • Überprüfen Sie, ob die Dateigrößen kleiner sind.
  • Barrierefreiheit mit Bildschirmlesegeräten testen
  • Leistungsvergleich

Hinweis:: Spire ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Seite ist nicht mit e-iceblue verbunden, genehmigt oder gesponsert. 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.

OR
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.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 999 $