Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE
Ein Vergleich von IronPDF vs SpirePDF

SpirePDF C# HTML zu PDF Tutorial & Bibliothekenvergleich

Die Umwandlung von HTML in PDF ist eine kritische Anforderung für viele .NET-Anwendungen, von der Erstellung von Rechnungen und Berichten bis hin zur Erstellung von Dokumentationen und eBooks. Wenn Sie zwischen IronPDF und Spire.PDF für Ihre HTML-zu-PDF-Konvertierungsanforderungen wählen, ist es wichtig, deren Stärken, Einschränkungen und die reale Leistung zu verstehen. Dieser umfassende Vergleich untersucht die Fähigkeiten beider Bibliotheken, um Ihnen bei der Entscheidungsfindung für Ihre PDF-Erstellungsanforderungen zu helfen.

Was sind die Hauptunterschiede zwischen IronPDF und Spire.PDF für die Konvertierung von HTML in PDF?

IronPDF ist eine vielseitige .NET-PDF-Bibliothek, die für eine Vielzahl von PDF-bezogenen Aufgaben konzipiert ist, darunter die Umwandlung von PDF-Dateien, die Bearbeitung von PDF-Dateien, die Erstellung von PDF-Dateien, das Lesen von PDF-Dateien und mehr. Es ist bekannt für seine einfache Integration in bestehende .NET-Anwendungen, hohe Leistung und Unterstützung moderner Webstandards wie HTML5, CSS3 und JavaScript. Das Chrome-basierte Rendering-Engine von IronPDF sorgt für pixelgenaue PDF-Erstellung aus HTML-Inhalten.

Spire.PDF for .NET ist eine weitere leistungsstarke .NET-PDF-Bibliothek, die eine umfassende Palette von Funktionen für die Erstellung und Bearbeitung von PDF-Dateien bietet. Es unterstützt verschiedene PDF-Funktionen wie Text- und Bildextraktion, das Ausfüllen von PDF-Formularen und digitale Signaturen. Obwohl es umfassende Funktionen bietet, haben seine HTML-zu-PDF-Konvertierungsfähigkeiten spezifische Einschränkungen, die Entwickler berücksichtigen sollten.

Überblick über den Produktvergleich
Vergleich der Funktionen von IronPDF und Spire.PDF für die .NET-PDF-Verarbeitung
Kategorie Merkmal/Aspekt IronPDF Spire.PDF Hauptvorteil
Kernarchitektur Design-Philosophie Intuitive APIs, die auf Einfachheit setzen Mehrklassenansatz, manuelle Einrichtung IronPDF: Schnellere Entwicklung
API-Komplexität Einfache Methoden wie RenderHtmlAsPdf() Multi-threaded Ansatz erforderlich IronPDF: 70 % weniger Code
Lernkurve typisch 1-2 Tage typisch 1-2 Wochen IronPDF: Schnellere Akzeptanz
Plattform-Unterstützung Plattformübergreifend Native Unterstützung, keine zusätzlichen Pakete Eingeschränkte Linux/macOS-Unterstützung IronPDF: Echt plattformübergreifend
.NET-Versionen .NET 8, 7, 6, 5, Core 3.1+, Framework 4.6.2+ .NET Core 2.0+, Framework 2.0+ Beides: Breite Unterstützung von Frameworks
Betriebssysteme Windows, Linux, macOS, Docker nativ Hauptsächlich auf Windows fokussiert IronPDF: Breitere OS-Unterstützung
HTML zu PDF Rendering-Engine Vollständige Chrome V8-Engine Benutzerdefinierter HTML-Parser IronPDF: 98%+ Browser-Treue
CSS3/HTML5-Unterstützung Vollständige Unterstützung Begrenzt (nur grundlegende CSS) IronPDF: Moderne Webstandards
JavaScript-Ausführung Volle JavaScript-Unterstützung Geplant, aber nicht umgesetzt IronPDF: Bereit für dynamische Inhalte
Webfonts Google-Schriftarten, Systemschriftarten Eingeschränkte Unterstützung von Schriftarten IronPDF: Typografische Flexibilität
Rendering-Geschwindigkeit 0.8-1.2s typisch 0.5-0,8s für einfaches HTML Spire: Schneller für einfaches HTML
Security & Encryption Verschlüsselungsstufen AES-256, benutzerdefinierte Handler AES-256-Standard Beides: Industriestandard
API-Vereinfachung Einzelne SecuritySettings Klasse Mehrere Sicherheitsmethoden IronPDF: Einheitlicher Ansatz
Inhaltsmanipulation Redaktionsmethode Echte Inhaltsentfernung, einzeilige API Manuelles Rechteck-Overlay IronPDF: Compliance-gerecht
Wasserzeichen HTML/CSS-basiert, vollständiges Styling Textbasiert mit Rotation IronPDF: Reichhaltige Wasserzeichen
Datei-Konvertierungen DOCX to PDF Eingebauter DocxToPdfRenderer Erfordert die Bibliothek Spire.Doc IronPDF: Keine zusätzlichen Kosten
Leistungskennzahlen Speicherverwendung 150-200MB (Chrome-Engine) 80-120MB Spire: Geringerer Speicherbedarf
Threading-Unterstützung Natives async/await optimiert STA-Thread erforderlich IronPDF: Moderne asynchrone Muster
Erfahrung des Entwicklers Codebeispiele 100+ fertige Beispiele Grundlegende Beispiele IronPDF: Umfangreiche Ressourcen
Fehlermeldungen Beschreibend, umsetzbar Technische Botschaften IronPDF: Bessere Fehlersuche
Licensing & Pricing Einstiegsstufe Lite: $799 (1 dev, 1 project) Developer: $1,199/year (1 dev) IronPDF: Unbefristete Lizenz
Teamlizenz Plus: $1,199 (3 devs, 3 projects) Standort: 4.599 $ (10 Entwickler) IronPDF: Besserer Teamwert
Suite-Option Iron Suite: $1,498 (9 products) Keine Suite-Option IronPDF: Außergewöhnlicher Wert
Unterstützung Inklusive Unterstützung Ja, 24/5 technische Unterstützung Nur Forum (kostenpflichtiger Support extra) IronPDF: Unterstützung inklusive
Support-Kanäle E-Mail, Chat, Telefon, Bildschirmfreigabe Forum, E-Mail (kostenpflichtig) IronPDF: Weitere Kanäle
Best für Anwendungsfälle Moderne Webanwendungen, komplexes HTML/CSS Einfache Dokumente, einfache Layouts Kontextabhängig
Hinweis. Spire.PDF bietet grundlegende PDF-Funktionen mit geringerem Speicherbedarf, während IronPDF sich durch HTML-Rendering und die Unterstützung moderner Webstandards auszeichnet. Wählen Sie danach, ob komplexes HTML-Rendering oder minimale Ressourcennutzung im Vordergrund steht.

Für detailliertere Informationen zu IronPDF besuchen Sie IronPDF.com.

Wie ist die plattformübergreifende Kompatibilität der Bibliotheken im Vergleich?

IronPDF

IronPDF zeichnet sich durch seine umfangreiche plattformübergreifende Kompatibilität aus. Es unterstützt eine Vielzahl von Umgebungen innerhalb des .NET-Frameworks und sorgt für einen nahtlosen Betrieb über verschiedene Plattformen hinweg. Nachfolgend eine Übersicht über die Plattformkompatibilität von IronPDF:

  • .NET-Versionen:

    • Vollständig geschrieben in und unterstützt C#, VB.NET, und F#
    • .NET Core (8, 7, 6, 5 und 3.1+)
    • .NET Standard (2.0+)
    • .NET Framework (4.6.2+)
  • App-Umgebungen: IronPDF funktioniert in verschiedenen App-Umgebungen wie Windows, Linux, Mac, Docker, Azure und AWS.
  • IDEs: Funktioniert mit IDEs wie Microsoft Visual Studio und JetBrains Rider & ReSharper
  • Betriebssysteme und Prozessoren: Unterstützt mehrere verschiedene Betriebssysteme & Prozessoren einschließlich Windows, Mac, Linux, x64, x86, ARM

Für weitere Informationen zur Kompatibilität von IronPDF besuchen Sie die IronPDF Features Page.

Spire.PDF

Spire.PDF bietet volle Unterstützung innerhalb der .NET-Umgebung, funktioniert jedoch mit dem Windows-Betriebssystem und hat nicht die native Unterstützung für Linux und macOS, die IronPDF hat. Beim Einsatz auf macOS oder Linux erfordert Spire.PDF unterschiedliche Plugins für jede Plattform, was die Bereitstellungsszenarien erschweren kann.

  • .NET-Unterstützung:

    • .NET Framework 2.0+
    • .NET Core 2.0+
    • Geschrieben in C#, mit Unterstützung für VB.NET
  • App-Umgebungen: Spire.PDF funktioniert in verschiedenen App-Umgebungen wie Windows- und ASP.NET-Anwendungen. Es kann auch Windows Forms unterstützen.

Welche Bibliothek bietet die besseren Funktionen für die Konvertierung von HTML in PDF?

IronPDF Funktionen

  • PDF-Konvertierung: IronPDF kann HTML in PDF konvertieren. Mit seiner vollen Unterstützung für moderne Webstandards können Sie sicher sein, dass IronPDF stets pixelgenaue PDFs aus Ihren HTML-Inhalten liefert. IronPDF kann auch PDF-Dateien aus anderen Formaten wie DOCX, Bilder, RTF und mehr konvertieren.
  • PDF-Erstellung: Mit IronPDF können Sie PDFs aus URLs, ASPX-Dateien oder HTML-Strings erzeugen.
  • Sicherheitsfunktionen: Mit IronPDF können Sie sicher sein, dass alle vertraulichen PDF-Dateien sicher sind, dank der Sicherheitsfunktionen. Verwenden Sie IronPDF, um Ihre PDF-Dateien zu verschlüsseln, Passwörter festzulegen und Berechtigungen für Ihre PDF-Dateien einzustellen.
  • PDF-Bearbeitungsfunktionen: Mit IronPDF können Sie vorhandene PDF-Dokumente verarbeiten, bearbeiten und PDF-Dateien problemlos lesen. IronPDF bietet Bearbeitungsfunktionen wie das Hinzufügen von Kopf- und Fußzeilen, das Stempeln von Text und Bildern auf den PDF-Seiten, das Hinzufügen von benutzerdefinierten Wasserzeichen zu den PDFs, das Arbeiten mit PDF-Formularen und das Aufteilen oder Zusammenführen von PDF-Dateien.
  • Integration: Nahtlos in ASP.NET und MVC-Anwendungen integrierbar.
  • PDF-Version-Unterstützung: Kann PDF-Version 1.2-1.7 unterstützen.

Für eine umfassende Liste der Funktionen von IronPDF, besuchen Sie die IronPDF Features.

Spire.PDF Merkmale

  • PDF-Erstellung: Erstellen von PDFs von Grund auf oder aus vorhandenen Dateien.
  • Text- und Bildextraktion: Verwenden Sie Spire.PDF, um PDF-Seiten und -Inhalte zu extrahieren.
  • PDF-Formularverwaltung: Ausfüllen und Verwalten von PDF-Formularen.
  • PDF-Konvertierung: Konvertieren von PDFs in andere Formate wie HTML, RTF und Bilder.
  • Seitenmanipulation: Einfügen, Löschen und Neuanordnung von Seiten in einem PDF.
  • Begrenzte HTML-Unterstützung: Die HTML-zu-PDF-Engine hat begrenzte Unterstützung für moderne CSS- und JavaScript-Funktionen. Das standardmäßig auf Qt basierende Plugin unterstützt nicht CSS-Page-Break-Eigenschaften oder die Erkennung externer CSS-Dateien, und die JavaScript-Ausführung ist eine geplante Funktion, die nicht vollständig implementiert ist. Ein optionaler ChromeHtmlConverter steht für ein besseres Rendering zur Verfügung.

Bootstrap und Modern CSS Framework Rendering

Die moderne Webentwicklung hängt stark von CSS-Frameworks wie Bootstrap für die schnelle UI-Entwicklung und responsive Design ab. PDF-Erstellungsbibliotheken müssen diese Frameworks genau konvertieren, um professionelle Dokumentqualität und Designkonsistenz zu gewährleisten.

IronPDF: Volle Unterstützung für Bootstrap und Tailwind

Die Chromium-Engine von IronPDF bietet vollständige Unterstützung für alle modernen CSS-Frameworks:

  • Bootstrap 5: Volle Flexbox- und CSS-Grid-Unterstützung mit allen responsiven Komponenten
  • Bootstrap 4: Vollständige Kartenlayouts, Navigationssysteme und Hilfsklassen
  • Tailwind CSS: Alle Utility-First-Klassen und Responsive-Modifikatoren
  • Fundament: Komplette Netz- und Komponentensysteme
  • Modernes CSS3: Flexbox, Grid, benutzerdefinierte Eigenschaften, Animationen und Transformationen

Bewiesen mit echten Beispielen: Die Bootstrap-Startseite und Bootstrap-Vorlagen werden mit pixelgenauer Genauigkeit konvertiert.

Codebeispiel: Teammitgliedskarten mit Bootstrap

using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapTeam = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Our Team</h1>

        <div class='row row-cols-1 row-cols-md-3 g-4'>
            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Jennifer Martinez</h5>
                        <p class='text-muted mb-3'>Chief Technology Officer</p>
                        <p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>David Chen</h5>
                        <p class='text-muted mb-3'>Head of Engineering</p>
                        <p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Sarah Johnson</h5>
                        <p class='text-muted mb-3'>Product Manager</p>
                        <p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='text-center mt-5'>
            <h3>Join Our Team</h3>
            <p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
            <a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTeam);
pdf.SaveAs("team-members.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapTeam = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Our Team</h1>

        <div class='row row-cols-1 row-cols-md-3 g-4'>
            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Jennifer Martinez</h5>
                        <p class='text-muted mb-3'>Chief Technology Officer</p>
                        <p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>David Chen</h5>
                        <p class='text-muted mb-3'>Head of Engineering</p>
                        <p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Sarah Johnson</h5>
                        <p class='text-muted mb-3'>Product Manager</p>
                        <p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='text-center mt-5'>
            <h3>Join Our Team</h3>
            <p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
            <a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTeam);
pdf.SaveAs("team-members.pdf");
$vbLabelText   $csharpLabel

Ergebnis: Eine professionelle Teamseite mit Bootstrap-Kartenraster, Flexbox-Ausrichtung, responsiven Bildern und Schaltflächenkomponenten – alles präzise im PDF dargestellt.

Spire.PDF: Begrenzte HTML- und Modern-Framework-Unterstützung

Die HTML-zu-PDF-Engine von Spire.PDF hat signifikante Einschränkungen für moderne CSS-Frameworks, wie in ihrer eigenen Dokumentation beschrieben:

  • Eingeschränkte CSS-Unterstützung: Nur grundlegendes CSS, keine umfassenden CSS3-Funktionen
  • Kein Flexbox: Bootstrap 4/5 basieren stark auf Flexbox, das nicht unterstützt wird.
  • Kein CSS Grid: Moderne Layoutsysteme, die CSS Grid verwenden, werden nicht korrekt dargestellt.
  • JavaScript-Einschränkungen: Minimale JavaScript-Ausführung im Vergleich zu modernen Browsern
  • Bootstrap 3 Maximum: Nur ältere tabellenbasierte Bootstrap-Versionen funktionieren zuverlässig.
  • Komplexe Layouts scheitern: Moderne responsive Designs erfordern umfangreiche Workarounds.

Von Entwicklern gemeldete Probleme mit der HTML-Konvertierung von Spire.PDF:

  • Bootstrap-Navigationsleisten werden mit Layoutproblemen gerendert.
  • Kartenkomponenten mit Flexbox richten sich nicht korrekt aus.
  • Responsive Gitter-Auslösepunkte werden im PDF-Output ignoriert.
  • Moderne CSS-Funktionen erfordern manuelles Überarbeiten oder Rückschritte.

Auswirkungen auf die Entwicklung: Anwendungen, die Bootstrap 4+ oder moderne CSS-Frameworks verwenden, stehen mit Spire.PDF vor erheblichen Herausforderungen. Entwicklungsteams müssen:

  1. Separate vereinfachte CSS speziell für die PDF-Erstellung pflegen (doppelter Wartungsaufwand).
  2. Auf Bootstrap 3 zurückstufen oder Frameworks ganz aufgeben (begrenzt moderne Funktionen).
  3. Jedes Element ausgiebig testen und manuell korrigieren (zeitaufwendig und brüchig).

Für Projekte, die Unterstützung moderner CSS-Frameworks erfordern, machen die HTML-Rendering-Einschränkungen von Spire.PDF es ungeeignet ohne wesentliche zusätzliche Entwicklungsarbeiten und ständige Wartungsbelastung.

Für detaillierte Informationen zur Bootstrap-Kompatibilität siehe den Bootstrap- & Flexbox-CSS-Leitfaden.

Wie lassen sich Code-Beispiele für gängige PDF-Aufgaben vergleichen?

Um die Fähigkeiten von IronPDF und Spire.PDF für .NET zu veranschaulichen, vergleichen wir ihre Implementierung von mehreren Schlüssel-PDF-Funktionen durch Code-Beispiele, um Ihnen eine Vorstellung davon zu geben, wie diese Funktionen Ihnen bei Ihren PDF-Projekten helfen könnten.

Konvertieren von HTML in PDF

IronPDF Beispiel:

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS, and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS, and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
$vbLabelText   $csharpLabel

Die ChromePdfRenderer-Klasse in IronPDF nutzt eine vollständige Chrome-Browser-Engine, um HTML-Inhalte darzustellen. Das bedeutet, dass CSS3-Animationen, JavaScript-Ausführung und moderne Webfonts genau so gerendert werden, wie sie in Chrome wären. Die RenderHtmlAsPdf()-Methode akzeptiert HTML-Strings und optionale Basis-Pfade zum Laden externer Assets, was die Konvertierung sowohl einfacher als auch komplexer HTML-Dokumente einfach macht. Der Renderer unterstützt erweiterte Rendering-Optionen einschließlich benutzerdefinierter Papierformate, Ränder und JavaScript-Verzögerungseinstellungen.

Spire.PDF-Beispiel:

using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;

namespace ConvertHtmlStringToPdfWithoutPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument object
            PdfDocument doc = new PdfDocument();

            // Create a PdfPageSettings object
            PdfPageSettings setting = new PdfPageSettings();

            // Set page size and margins through the object
            setting.Size = new SizeF(1000, 1000);
            setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);

            // Create a PdfHtmlLayoutFormat object
            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            // Set IsWaiting property to true
            htmlLayoutFormat.IsWaiting = true;

            // Read HTML string from a .html file
            string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");

            // Load HTML from HTML string using LoadFromHTML method
            Thread thread = new Thread(() =>
            { doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            // Save to a PDF file
            doc.SaveToFile("HtmlStringToPdf.pdf");
        }
    }
}
using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;

namespace ConvertHtmlStringToPdfWithoutPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument object
            PdfDocument doc = new PdfDocument();

            // Create a PdfPageSettings object
            PdfPageSettings setting = new PdfPageSettings();

            // Set page size and margins through the object
            setting.Size = new SizeF(1000, 1000);
            setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);

            // Create a PdfHtmlLayoutFormat object
            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            // Set IsWaiting property to true
            htmlLayoutFormat.IsWaiting = true;

            // Read HTML string from a .html file
            string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");

            // Load HTML from HTML string using LoadFromHTML method
            Thread thread = new Thread(() =>
            { doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            // Save to a PDF file
            doc.SaveToFile("HtmlStringToPdf.pdf");
        }
    }
}
$vbLabelText   $csharpLabel

Die HTML-zu-PDF-Konvertierung von Spire.PDF erfordert die Erstellung mehrerer Objekte einschließlich PdfDocument, PdfPageSettings und PdfHtmlLayoutFormat. Die Konvertierung muss in einem Single Thread Apartment (STA) Thread ausgeführt werden, was zu einer zunehmenden Komplexität der Implementierung führt. Benutzer haben berichtet, dass "Spire eine PDF-Datei generiert, die nur ein Bild ist. "Einige der CSS sind nicht einmal korrekt, wie etwa die Ignorierung fettgedruckter Schriften", was auf Einschränkungen in der CSS-Rendering-Treue hinweist.

IronPDF verwendet die Rendering-Engine von Chrome für eine hochpräzise HTML-zu-PDF-Konvertierung und sorgt für eine genaue Darstellung von Webinhalten dank der Unterstützung moderner Webstandards. Spire.PDF bietet ebenfalls robuste HTML-zu-PDF-Konvertierung, kann jedoch möglicherweise nicht die Rendering-Genauigkeit von IronPDF erreichen und nimmt einen längeren, manuelleren Ansatz an.

Wie kann man PDF-Dokumente verschlüsseln?

IronPDF Beispiel:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from HTML
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from HTML
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
$vbLabelText   $csharpLabel

Die SecuritySettings-Klasse von IronPDF bietet eine umfassende API für das Management der PDF-Sicherheit. Sie können einzelne Berechtigungen mit booleschen Eigenschaften steuern, verschiedene Druckrechtestufen einrichten und Passwörter separat von anderen Sicherheitseinstellungen verwalten. Das API-Design folgt den Konventionen von .NET mit stark typisierten Aufzählungen wie PdfPrintSecurity. Erfahren Sie mehr über PDF-Berechtigungen und -Passwörter in der Dokumentation.

Spire.PDF-Beispiel:

using Spire.Pdf;
using Spire.Pdf.Security;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");

// Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);

// Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
using Spire.Pdf;
using Spire.Pdf.Security;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");

// Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);

// Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
$vbLabelText   $csharpLabel

Die Verschlüsselungsmethode von Spire.PDF nutzt die Security.Encrypt()-Methode mit Bitmasken für Berechtigungen. Während es kompakter ist, erfordert dieser Ansatz das Verständnis von Bitmaskenoperationen und bietet weniger granulare Kontrolle im Vergleich zu den einzelnen Berechtigungseigenschaften von IronPDF.

Beide Bibliotheken stellen benutzerfreundliche Methoden für die Verschlüsselung von PDFs und die Festlegung der Lesbarkeit verschlüsselter PDF-Dokumente bereit. IronPDF bietet einen unkomplizierten Ansatz, der Ihnen dennoch die vollständige Kontrolle über die Sicherheitseinstellungen Ihres PDFs gibt. Spire.PDF nimmt einen etwas kürzeren Prozess an, beinhaltet aber immer noch zusätzliche Optionen zum Festlegen von Berechtigungen.

Welche Optionen gibt es für die Schwärzung von PDF-Inhalten?

IronPDF Beispiel:

using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

// Save the redacted document
pdf.SaveAs("redacted.pdf");
using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

// Save the redacted document
pdf.SaveAs("redacted.pdf");
$vbLabelText   $csharpLabel

IronPDF bietet eine spezielle Schwärzungs-API, die echte Inhaltsentfernung und nicht nur visuelle Maskierung durchführt. Die RedactTextOnAllPages()-Methode sucht und entfernt dauerhaft bestimmtes Textmaterial und sorgt so für die Einhaltung von Datenschutzbestimmungen. Zusätzliche Methoden ermöglichen das Schwärzen auf bestimmten Seiten oder Regionen.

Spire.PDF-Beispiel für Schwärzung durch Rechtecküberlagerung:

Während Spire.PDF kein spezielles Schwärzungswerkzeug hat, kann der Inhalt dennoch mittels eines manuellen Verfahrens geschwärzt werden, wie in folgendem Beispiel gezeigt:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Specify the input PDF file path
string inputPdfFilePath = "path/to/your/input.pdf";

// Specify the output redacted PDF file path
string outputPdfFilePath = "path/to/your/redacted_output.pdf";

// Create a new PdfDocument object
PdfDocument pdfDocument = new PdfDocument();

// Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath);

// Redact content on each page
foreach (PdfPageBase page in pdfDocument.Pages)
{
    // Define the area to redact (e.g., coordinates and size of the rectangle)
    RectangleF redactArea = new RectangleF(100, 100, 200, 50); // Example coordinates and size

    // Apply redaction
    page.Canvas.DrawRectangle(new PdfSolidBrush(Color.Black), redactArea);
}

// Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath);
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Specify the input PDF file path
string inputPdfFilePath = "path/to/your/input.pdf";

// Specify the output redacted PDF file path
string outputPdfFilePath = "path/to/your/redacted_output.pdf";

// Create a new PdfDocument object
PdfDocument pdfDocument = new PdfDocument();

// Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath);

// Redact content on each page
foreach (PdfPageBase page in pdfDocument.Pages)
{
    // Define the area to redact (e.g., coordinates and size of the rectangle)
    RectangleF redactArea = new RectangleF(100, 100, 200, 50); // Example coordinates and size

    // Apply redaction
    page.Canvas.DrawRectangle(new PdfSolidBrush(Color.Black), redactArea);
}

// Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath);
$vbLabelText   $csharpLabel

Dieser manuelle Ansatz erfordert die genaue Berechnung der Koordinaten für jede Schwärzungsfläche und bietet nur visuelle Maskierung anstelle von echter Inhaltsentfernung. Der zugrunde liegende Text könnte dennoch durch PDF-Bearbeitungstools extrahierbar sein.

IronPDF vereinfacht die Schwärzung mit seinem umfangreichen, aber unkomplizierten Schwärzungswerkzeug. Spire.PDF erfordert mehr manuelle Handhabung für die Schwärzung aufgrund der Abwesenheit eines integrierten Schwärzungswerkzeugs, was zu potenziell weniger effizienten Workflows führt.

Wie signiert man PDF-Dokumente?

IronPDF Beispiel:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate the renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature with certificate
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate the renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature with certificate
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
$vbLabelText   $csharpLabel

Die digitale Signatur-Implementierung von IronPDF folgt den .NET-Zertifikatsbearbeitungspatterns. Die PdfSignature-Klasse akzeptiert standardmäßige X509Certificate2-Objekte und behandelt intern die Komplexität der PDF-Signierung. Sie können auch visuelle Signaturanzeigen hinzufügen und Signaturfeldern konfigurieren.

Spire.PDF-Beispiel:

using Spire.Pdf;
using Spire.Pdf.Security;
using System.Drawing;

// Create a PdfDocument object
PdfDocument doc = new PdfDocument();

// Load a sample PDF file
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

// Load the certificate
PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");

// Create a PdfSignature object and specify its position and size
PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110);
signature.Bounds = rectangleF;
signature.Certificated = true;

// Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;

// Set various details about the signature
signature.NameLabel = "Signer:";
signature.Name = "Gary";
signature.ContactInfoLabel = "Phone:";
signature.ContactInfo = "0123456";
signature.DateLabel = "Date:";
signature.Date = DateTime.Now;
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "USA";
signature.ReasonLabel = "Reason:";
signature.Reason = "I am the author";
signature.DistinguishedNameLabel = "DN:";
signature.DistinguishedName = signature.Certificate.IssuerName.Name;

// Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png");

// Set the signature font
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));

// Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;

// Save to file
doc.SaveToFile("VisiableSignature.pdf");
using Spire.Pdf;
using Spire.Pdf.Security;
using System.Drawing;

// Create a PdfDocument object
PdfDocument doc = new PdfDocument();

// Load a sample PDF file
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

// Load the certificate
PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");

// Create a PdfSignature object and specify its position and size
PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110);
signature.Bounds = rectangleF;
signature.Certificated = true;

// Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;

// Set various details about the signature
signature.NameLabel = "Signer:";
signature.Name = "Gary";
signature.ContactInfoLabel = "Phone:";
signature.ContactInfo = "0123456";
signature.DateLabel = "Date:";
signature.Date = DateTime.Now;
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "USA";
signature.ReasonLabel = "Reason:";
signature.Reason = "I am the author";
signature.DistinguishedNameLabel = "DN:";
signature.DistinguishedName = signature.Certificate.IssuerName.Name;

// Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png");

// Set the signature font
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));

// Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;

// Save to file
doc.SaveToFile("VisiableSignature.pdf");
$vbLabelText   $csharpLabel

Spire.PDF bietet umfassende Kontrolle über das Erscheinungsbild von Signaturen, erfordert jedoch deutlich mehr Code. Sie müssen jeden Beschriftung manuell einstellen, die Signatur genau positionieren und visuelle Elemente separat konfigurieren.

Das digitale Signieren von PDFs kann in verschiedenen Einstellungen hilfreich sein, sei es zum Authentifizieren von PDF-Dokumenten oder einfach zur Freigabe eines neuen Projekts. IronPDF bietet einen unkomplizierten Ansatz, um digitale Signaturen hinzuzufügen, was die Automatisierung des Signierungsprozesses erleichtert. Spire.PDF unterstützt auch digitale Signaturen für PDFs; der Prozess kann jedoch manuell sein und mehr Aufwand erfordern, um sie zu implementieren.

Welche Methoden gibt es, um PDFs mit Wasserzeichen zu versehen?

IronPDF Beispiel:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
$vbLabelText   $csharpLabel

Die Wasserzeichnungsfunktion von IronPDF akzeptiert HTML-Inhalte, so dass Sie CSS zum Styling verwenden können. Die ApplyWatermark()-Methode bietet Parameter für Drehwinkel und Ausrichtung, was das genaue Positionieren von Wasserzeichen vereinfacht. Erfahren Sie mehr über benutzerdefinierte Wasserzeichen und Styling-Optionen.

Spire.PDF-Beispiel:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF document
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");

// Create a PdfTrueTypeFont object
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);

// Set the watermark text
string text = "CONFIDENTIAL";

// Measure the text size
SizeF textSize = font.MeasureString(text);

// Calculate the values of two offset variables,
// which will be used to calculate the translation amount of the coordinate system
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);

// Traverse all the pages in the document
foreach (PdfPageBase page in pdf.Pages)
{
    // Set the page transparency
    page.Canvas.SetTransparency(0.8f);

    // Translate the coordinate system by specified coordinates
    page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);

    // Rotate the coordinate system 45 degrees counterclockwise
    page.Canvas.RotateTransform(-45);

    // Draw watermark text on the page
    page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}

// Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf");
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF document
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");

// Create a PdfTrueTypeFont object
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);

// Set the watermark text
string text = "CONFIDENTIAL";

// Measure the text size
SizeF textSize = font.MeasureString(text);

// Calculate the values of two offset variables,
// which will be used to calculate the translation amount of the coordinate system
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);

// Traverse all the pages in the document
foreach (PdfPageBase page in pdf.Pages)
{
    // Set the page transparency
    page.Canvas.SetTransparency(0.8f);

    // Translate the coordinate system by specified coordinates
    page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);

    // Rotate the coordinate system 45 degrees counterclockwise
    page.Canvas.RotateTransform(-45);

    // Draw watermark text on the page
    page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}

// Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf");
$vbLabelText   $csharpLabel

Die Wasserzeichenfunktion von Spire.PDF erfordert manuelle Berechnung der Positionierung und Drehung unter Verwendung von Koordinatensystemtransformationen. Obwohl dies eine genaue Kontrolle bietet, erfordert es das Verständnis von Grafikprogrammierungskonzepten.

IronPDF bietet eine einfache Methode zum Hinzufügen von Textwasserzeichen, gibt Ihnen jedoch die vollständige Kontrolle über die Position und das Design des Wasserzeichens. Die Nutzung von HTML und CSS durch IronPDF vereinfacht den Prozess, wenn Sie Erfahrung mit diesen Sprachen haben. Der Ansatz von Spire.PDF ist länger und bereitet einen manuellen Prozess, bietet jedoch immer noch ein starkes Wasserzeichen-Tool mit voller Kontrolle über das Design und die Position.

Wie kann man Bilder und Text in PDFs stempeln?

IronPDF Beispiel:

using IronPdf;
using IronPdf.Editing;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
$vbLabelText   $csharpLabel

Die Stempel-API von IronPDF verwendet spezielle Klassen für verschiedene Stempeltypen. Der TextStamper unterstützt direkt über die UseGoogleFont-Eigenschaft Google Fonts, während ImageStamper Bilder aus URLs oder lokalen Dateien laden kann. Beide Stempelgeräte teilen gemeinsame Ausrichtungseigenschaften für konsistente Positionierung. Erkunden Sie mehr Stempeloptionen, einschließlich HTML-Stempelgeräte und Barcode-Integration.

Spire.PDF (Beispiel für Textstempelung):

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Assumes a PdfDocument is already loaded as `doc` object
PdfPageBase page = doc.Pages[0];
PdfGraphicsState state = page.Canvas.Save();

// Define font and brushes for different effects
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);

// Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200);
page.Canvas.ScaleTransform(1f, 0.6f);
page.Canvas.SkewTransform(-10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);
page.Canvas.SkewTransform(10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);
page.Canvas.ScaleTransform(1f, -1f);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);

// Restore graphics to previous state
page.Canvas.Restore(state);
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Assumes a PdfDocument is already loaded as `doc` object
PdfPageBase page = doc.Pages[0];
PdfGraphicsState state = page.Canvas.Save();

// Define font and brushes for different effects
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);

// Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200);
page.Canvas.ScaleTransform(1f, 0.6f);
page.Canvas.SkewTransform(-10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);
page.Canvas.SkewTransform(10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);
page.Canvas.ScaleTransform(1f, -1f);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);

// Restore graphics to previous state
page.Canvas.Restore(state);
$vbLabelText   $csharpLabel

Spire.PDF erfordert direkte Leinwandmanipulation mit manuellen Transformationen für jede Wirkung. Die Erstellung komplexer Stempel erfordert das Verständnis des Grafikstatus-Managements und der Koordinatentransformationen.

IronPDFs Text- und Bildstempelwerkzeug ist ein leistungsstarkes, einfach zu bedienendes Stempelwerkzeug, das einem ähnlichen Ansatz wie HTML und CSS folgt, wenn Sie das abgestempelte Material anwenden. Obwohl Spire.PDF auch ein einfaches Textstempelwerkzeug bietet, erfordert es mehr Aufwand, den abgestempelten Text auf Ihre PDF-Dateien anzuwenden.

Welche Bibliothek eignet sich besser für die Konvertierung von DOCX in PDF?

IronPDF Beispiel:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
$vbLabelText   $csharpLabel

IronPDF umfasst eine spezielle DocxToPdfRenderer-Klasse, die die DOCX-Konvertierung nativ verarbeitet. Das API ist konsistent mit anderen Rendering-Klassen in IronPDF und erfordert nur zwei Codezeilen für grundlegende Konvertierungen. Erweiterte Optionen für Seiteneinstellung und Formatierung sind über die Eigenschaften des Renderers verfügbar. Erfahren Sie mehr über DOCX zu PDF-Konvertierung funktionen.

Spire.PDF mit Spire.Doc für DOCX-zu-PDF-Konvertierung:

Spire.PDF selbst kann keine DOCX in PDF konvertieren; jedoch kann die Spire.Doc-Bibliothek verwendet werden, um diese Konvertierung durchzuführen, und dann können Sie Spire.PDF verwenden, um mit dem resultierenden PDF zu arbeiten.

using Spire.Doc;

// Create a Document object
Document doc = new Document();

// Load a Word document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");

// Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);

// Dispose of resources
doc.Dispose();
using Spire.Doc;

// Create a Document object
Document doc = new Document();

// Load a Word document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");

// Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);

// Dispose of resources
doc.Dispose();
$vbLabelText   $csharpLabel

Dieser Ansatz erfordert den Kauf und die Verwaltung einer zusätzlichen Bibliothek (Spire.Doc), was die Kosten und die Komplexität erhöht.

IronPDF bietet eine integrierte Unterstützung für direkte DOCX zu PDF-Konvertierung, was bedeutet, dass Sie Zeit sparen, ohne zusätzliche Bibliotheken für diese Aufgabe zu benötigen. Spire.PDF, andererseits, kann nicht direkt die Konvertierung von DOCX zu PDF durchführen, wodurch die Spire.Doc-Bibliothek benötigt wird, um DOCX-Dateien in PDFs zu konvertieren.

Was verraten die Leistungsmetriken?

Basierend auf Tests und Benutzerfeedback, so vergleichen sich die Bibliotheken in der realen Nutzung:

Rendering-Leistung

Für einfache Layouts ist Spire.PDF für einfache Inhalte wie statische Tabellen oder grundlegend gestalteten Text optimiert, was es für diese Anwendungsfälle schnell und effizient macht. Wenn es jedoch darum geht, komplexes HTML mit modernen CSS3-Funktionen, JavaScript oder responsiven Layouts zu verarbeiten, liefert die Chrome-basierte Engine von IronPDF präzisere Ergebnisse auf Kosten leicht höherer Renderzeit.

Speichernutzung

Spire.PDF verwendet generell weniger Speicher (80-120 MB) im Vergleich zu IronPDF (150-200 MB) aufgrund seiner einfacheren Rendering-Engine. Dies geht jedoch zu Lasten der Rendering-Treue und Funktionsunterstützung. Für Anwendungen, bei denen Speicher kritisch ist und die HTML-Komplexität minimal ist, kann Spire.PDF vorteilhaft sein.

Threading und Async-Unterstützung

IronPDF bietet native async/await-Unterstützung mit Methoden wie RenderHtmlAsPdfAsync(), wodurch es für moderne .NET-Anwendungen geeignet ist. Spire.PDF erfordert manuelle Thread-Verwaltung mit STA-Threads, was die Komplexität der Mehrthread-Anwendungen erhöht.

Wie werden Preis- und Lizenzmodelle verglichen?

IronPDF Preise und Lizenzierung

IronPDF bietet verschiedene Stufen und zusätzliche Funktionen für den Kauf einer Lizenz. Entwickler können auch die Iron Suite erwerben, die Zugang zu allen Produkten von Iron Software zum Preis von zwei bietet. Wenn Sie noch nicht bereit sind, eine Lizenz zu kaufen, bietet IronPDF eine kostenlose Testversion, die 30 Tage dauert.

Preisgestaltung (Stand 2025):

  • Unbefristete Lizenzen: Bietet eine Reihe unbefristeter Lizenzen, abhängig von der Größe Ihres Teams, Ihren Projektanforderungen und der Anzahl der Standorte. Jeder Lizenztyp kommt mit E-Mail-Support.
  • Lite-Lizenz: Diese Lizenz kostet $799 und unterstützt einen Entwickler, einen Standort und ein Projekt.
  • Plus-Lizenz: Unterstützt drei Entwickler, drei Standorte und drei Projekte, das ist der nächste Schritt über die Lite-Lizenz hinaus und kostet $1,199. Die Plus-Lizenz bietet Chat-Support und Telefonsupport zusätzlich zum grundlegenden E-Mail-Support.
  • Professionelle Lizenz: Diese Lizenz ist geeignet für größere Teams, unterstützt zehn Entwickler, zehn Standorte und zehn Projekte für $2,399. Es bietet dieselben Support-Kanäle wie die vorherigen Stufen, zusätzlich Bildschirmteilen-Support.
  • Tantiemenfreie Weiterverteilung: Die Lizenzierung von IronPDF bietet auch eine Abdeckung für die tantiemenfreie Weiterverteilung für eine zusätzliche $2,399
  • Ununterbrochene Produktunterstützung: IronPDF bietet Zugriff auf laufende Produktaktualisierungen, Sicherheits-Feature-Upgrades und Support durch ihr Engineering-Team für entweder $999/Jahr oder einen einmaligen Kauf von $1.999 für eine 5-jährige Abdeckung.
  • Iron Suite: Für $1,498 erhalten Sie Zugriff auf alle Iron Software-Produkte einschließlich IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint und IronWebScraper.

IronPDF-Preistabelle IronPDF bietet flexible Lizenzierungsoptionen mit dauerhaften Lizenzen und umfassendem Support inbegriffen

Spire.PDF Preise und Lizenzierung

Spire.PDF bietet eine Reihe von Lizenzen, abhängig von Ihren Bedürfnissen.

  • Kostenlose Version: Spire.PDF bietet eine kostenlose Version, die auf 10 PDF-Seiten beschränkt ist; über diese hinaus müssten Sie eine kostenpflichtige Lizenz erwerben.
  • Entwicklerabonnement: Zum Preis entweder von $999 oder $1,199 pro Jahr, abhängig von der benötigten Unterstützung, ist diese Option für Entwickler, die PDF-bezogene Funktionen erstellen müssen, aber keine OEM-Distributionsrechte benötigen.
  • Entwickler-OEM-Abonnement: Kostet etwa $2,549 - $4,248 pro Jahr, abhängig von der benötigten Unterstützung, und beinhaltet kostenlose Upgrades, Premium-Support und die Fähigkeit, die Anwendung an Endnutzer zu vertreiben.
  • Kleine Standortfirma: Zum Preis entweder von $4,599 oder $7,598, abhängig von der gewünschten Unterstützung, unterstützt diese Lizenzstufe bis zu 10 Entwickler an bis zu 10 Standorten, Updates für 1 Jahr und kostenlose Online-Technikressourcen.
  • Standort-OEM-Abonnement: Kostet $13,088 - $16,687 pro Jahr, abhängig von der benötigten Unterstützung, und ist für größere Unternehmen gedacht, die Anwendungen an mehreren Standorten bereitstellen müssen.

Welche Bibliothek bietet die bessere Dokumentation und Unterstützung?

IronPDF

IronPDF überzeugt durch umfangreiche Dokumentation und Support:

  • Umfassende Dokumentation: Umfangreiche und benutzerfreundliche Dokumentation, die alle Funktionen abdeckt.
  • 24/5 Support: Aktiver Ingenieurssupport ist verfügbar.
  • Videoanleitungen: Schritt-für-Schritt-Videoanleitungen sind auf YouTube verfügbar.
  • Community-Forum: Engagierte Community für zusätzlichen Support.
  • Regelmäßige Updates: Monatliche Produktupdates, um sicherzustellen, dass die neuesten Funktionen und Sicherheitspatches vorhanden sind.
  • PDF-API-Referenz: Bietet API-Referenzen, damit Sie das Beste aus unseren Tools herausholen können.

Für weitere Informationen, schauen Sie sich die umfangreiche Dokumentation von IronPDF an und besuchen Sie den Iron Software YouTube Channel.

Spire.PDF für .NET Dokumentation und Support

  • Foren: Spire.PDF hat ein Forum, in dem Benutzer miteinander interagieren können, Tipps austauschen, Anwendungen und aufgetretene Probleme mit Spire.PDF teilen.
  • Code-Beispiele: Spire.PDF bietet Codebeispiele auf ihrer Website, um zu zeigen, wie das Produkt in verschiedenen Anwendungsfällen verwendet werden kann.
  • Newsletter: Spire.PDF bietet einen Newsletter für Entwickler für Ankündigungen von Updates und andere wichtige Informationen.
  • Unterstützung: Die Unterstützung erfolgt hauptsächlich über Foren, wobei kostenpflichtiger E-Mail/Telefon-Support je nach Lizenzversion gegen Aufpreis verfügbar ist.

Was sind häufige Erfahrungen und Rückmeldungen von Entwicklern?

Basierend auf Community-Feedback und realer Nutzung:

IronPDF-Feedback

Entwickler loben IronPDF durchgehend, weil es "eine umfassendere und genauere Darstellung der ursprünglichen HTML-Seite bietet". Die Fähigkeit der Bibliothek, komplexe CSS3-Layouts, JavaScript-lastige Seiten und moderne Web-Frameworks zu handhaben, macht sie zur bevorzugten Wahl für Anwendungen, die eine hochfidele PDF-Erstellung erfordern.

Häufig erwähnte positive Punkte sind:

  • Intuitives API-Design, das die Entwicklungszeit verkürzt
  • Hervorragende Renderqualität, die dem Browserausgabe entspricht
  • Umfassende Dokumentation mit praktischen Beispielen
  • Reaktionsschneller technischer Support

Spire.PDF Rückmeldung

Feedback aus der Community zeigt, dass "Spire eine PDF-Datei generiert, die nur ein Bild ist." Einige der CSS sind nicht einmal korrekt, zum Beispiel wird die Schriftart in fett ignoriert. Darüber hinaus bleibt die Unterstützung von JavaScript ein geplantes Feature, das "so schwierig ist, dass es nicht in kurzer Zeit abgeschlossen wird", laut offizieller Supportantworten.

Häufige Bedenken sind:

  • Begrenzte Unterstützung für CSS3 und moderne Webstandards
  • Fehlende Ausführungsfähigkeit von JavaScript
  • Komplexe Threadanforderungen für die HTML-Konvertierung
  • Zusätzliche Bibliotheksanforderungen für bestimmte Features

Wann sollten Sie welche Bibliothek wählen?

Wählen Sie IronPDF, wenn:

  • Ihr HTML enthält moderne CSS3, JavaScript oder responsiven Design
  • Sie benötigen eine pixelgenaue Renderausgabe, die dem Browserergebnis entspricht
  • Es ist ein plattformübergreifender Einsatz erforderlich (Linux, macOS, Docker)
  • Sie möchten umfassende Unterstützung in Ihrer Lizenz enthalten haben
  • Sie benötigen integrierte Features wie DOCX-Konvertierung ohne zusätzliche Bibliotheken.
  • Ihr Team legt Wert auf schnelle Entwicklung mit minimalem Code

Wählen Sie Spire.PDF wann:

  • Ihre PDFs nur einfaches HTML mit einfacher Gestaltung enthalten
  • Der Speicherverbrauch eine kritische Einschränkung darstellt
  • Sie hauptsächlich in Windows-Umgebungen arbeiten
  • Ihr HTML keine JavaScript-Ausführung erfordert
  • Sie bereits andere Spire-Produkte in Ihrem Stack verwenden

Abschluss

Zusammenfassend sind IronPDF und Spire.PDF für .NET beide fähige Werkzeuge zur Handhabung von PDF-Dokumenten in .NET-Anwendungen. IronPDF glänzt durch Benutzerfreundlichkeit, plattformübergreifende Kompatibilität und Unterstützung für moderne Webstandards, was es zur bevorzugten Wahl macht, wenn Sie Ihre Arbeit mit PDF-Dokumenten auf das nächste Level bringen wollen. Spire.PDF bietet einen umfassenden Satz an Funktionen, erfordert jedoch möglicherweise mehr Aufwand für komplexe Aufgaben und fehlt die Präzision beim Rendering, die moderne Webanwendungen verlangen.

Für Entwickler, die mit zeitgemäßen Webtechnologien arbeiten, eine genaue HTML-zu-PDF-Konvertierung benötigen oder zuverlässige plattformübergreifende Unterstützung suchen, bietet IronPDF eine umfassendere Lösung. Sein auf Chrome basierendes Rendering-Engine, intuitive API und umfassende Unterstützung machen es besonders geeignet für Unternehmensanwendungen und komplexe Dokumenterstellungsszenarien.

Sie können die 30-tägige kostenlose Testversion ausprobieren, um die verfügbaren Funktionen zu überprüfen.

Hinweis:Spire.PDF ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite ist nicht mit Spire.PDF verbunden, wird nicht von ihm unterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie kann ich HTML in PDF in C# konvertieren?

Sie können die RenderHtmlAsPdf-Methode von IronPDF verwenden, um HTML-Strings in PDFs zu konvertieren. Sie können auch HTML-Dateien mit RenderHtmlFileAsPdf in PDFs konvertieren.

Unterstützt IronPDF die JavaScript-Ausführung während der HTML-zu-PDF-Konvertierung?

Ja, IronPDF unterstützt die vollständige JavaScript-Ausführung, wodurch es ideal ist, um dynamische Inhalte oder JavaScript-abhängige Layouts in PDF zu konvertieren.

Welche Plattformen werden von IronPDF für die PDF-Konvertierung unterstützt?

IronPDF bietet native Unterstützung auf mehreren Plattformen, einschließlich Windows, Linux, macOS, Docker sowie Cloud-Dienste wie Azure und AWS.

Wie ist der Speicherverbrauch von IronPDF im Vergleich zu Spire.PDF?

IronPDF verwendet etwas mehr Speicher, typischerweise zwischen 150-200MB, im Vergleich zu Spire.PDFs 80-120MB, bietet jedoch eine bessere Renderqualität und unterstützt moderne Async/Await-Muster.

Kann IronPDF DOCX-Dateien direkt in PDF konvertieren?

Ja, IronPDF beinhaltet eingebaute DOCX-zu-PDF-Konvertierungsfähigkeiten über seine DocxToPdfRenderer Klasse, ohne dass zusätzliche Bibliotheken erforderlich sind.

Welche Lizenzoptionen gibt es für IronPDF?

IronPDF bietet unbefristete Lizenzen ab $749 für Einzelentwickler, die alle Funktionen und Support umfassen. Es gibt auch ein Iron Suite Bundle mit 9 Produkten für $1,498.

Welche Art von Unterstützung bietet IronPDF?

IronPDF bietet 24/5 Ingenieur-Support per E-Mail, Chat, Telefon und Bildschirmfreigabe mit allen Lizenzen, was umfassende Unterstützung sicherstellt.

Wie kann ich PDF-Sicherheit und -Verschlüsselung mit IronPDF sicherstellen?

IronPDF unterstützt AES-256-Verschlüsselung und Passwortschutz über seine SecuritySettings Klasse, was eine granulare Kontrolle über PDF-Berechtigungen ermöglicht.

Ist IronPDF geeignet für das Rendern komplexer Webseiten mit modernem CSS?

Ja, IronPDF verwendet eine vollständige Chrome-Rendering-Engine, die CSS3, Flexbox, Grid-Layouts, Web-Schriften und JavaScript unterstützt, was es gut geeignet für komplexe Webseiten macht.

Was sind die Einschränkungen der kostenlosen Version von IronPDF?

IronPDF bietet eine voll funktionsfähige 30-Tage-Testversion ohne Seitenbeschränkungen, was reichlich Gelegenheit bietet, alle Funktionen vor einem Kauf auszuprobieren.

Wie stellt IronPDF qualitativ hochwertiges HTML-Rendering sicher?

IronPDF liefert ein pixelgenaues Rendering, das dem Chrome-Browser-Output entspricht, was eine hohe Präzision und genaue Darstellung des ursprünglichen HTML-Inhalts gewährleistet.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen