Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

Ein Vergleich zwischen IronPDF und PDFNet

1. Einleitung

Suchen Sie nach den perfekten PDF-Tools für das .NET Framework?

In diesem Artikel schauen wir uns an, wie man mit PDF-Dateien in C# (eine der beliebtesten Programmiersprachen) arbeitet. Wir werden zwei führende PDF-Tools für C# auf dem .NET Framework diskutieren und anhand von Codebeispielen ihre Leistung und Funktionen vergleichen. Am Ende werden wir ihre Lizenzierungsdetails prüfen und lernen, wie man Lizenzschlüssel erhält.

Die beiden PDF-Bibliotheken sind:

  • PDFNet
  • IronPDF

2. IronPDF

IronPDF ist eine C# .NET Bibliothek, die von Iron Software entwickelt wurde, um alle PDF-Probleme für C# .NET-Entwickler mit einer einzigen Bibliothek zu lösen. IronPDF wird von einer Chromium-Engine betrieben und verfügt über eine Vielzahl nützlicher und leistungsstarker Funktionen wie die Umwandlung von HTML5-, JavaScript-, CSS- und Bilddateien in PDF, das Erstellen benutzerdefinierter Kopf- und Fußzeilen und das genaue Anzeigen von PDFs, wie sie in einem Browser erscheinen. Mit IronPDF können Sie Daten aus PDF-Dateien lesen und automatisch in Ihre .NET-Anwendungen und Datenspeichersysteme einfügen. Sie können Inhalte aus alten PDF-Dokumentenspeichern in Ihre Dokumentenmanagement- und Geschäftsanwendungen importieren, verschieben und indexieren.

2.1. IronPDF-Funktionen

2.1.1. PDF-Konvertierungen

Diese Funktionalität ermöglicht Ihnen, PDF-Dateien aus verschiedenen Formaten wie HTML, MVC-Ansichten, Web Forms, HTML-Strings und URLs zu generieren.

2.1.2. Extraktion von PDF-Inhalten

In vielen Fällen können Sie eingebetteten Text leicht aus PDFs extrahieren. Wenn dies jedoch fehlschlägt, ist Ihr Text höchstwahrscheinlich in einem Bild eingebettet. Um Dokumente nach visuellem Text anstelle von reinem Text zu scannen, verwenden Sie die IronOCR-Bibliothek.

2.1.3 Kopf- und Fußzeilen

Kopf- und Fußzeilen können beim Erstellen eines PDFs oder zu bestehenden PDFs hinzugefügt werden. Mit der Print Options-Eigenschaft können Sie für jede Dokumentseite eine Kopf- und Fußzeile erstellen. Diese Parameter sind auf dem ChromePdfRenderer-Objekt verfügbar. Dieses Beispiel läuft innerhalb einer .NET Core-Konsolenanwendung.

2.1.4. PDF-Bildverarbeitung

Dies ermöglicht den Benutzern, Bilder aus PDFs sowie PDFs aus Fotos zu generieren. Es unterstützt die Bildextraktion, verschiedene Bilddateierweiterungen und das Drucken von PDFs.

2.1.5. PDF-Dokumente IO

IronPDF enthält auch 128-Bit-PDF-Verschlüsselung, passwortgeschützte PDF-Sperrung und die digitale Signierung von PDFs.

2.1.6. PDF-Bearbeitung

Mit IronPDF können Sie Wasserzeichen, Seiten, Hintergründe und mehr hinzufügen oder entfernen.

2.1.7. Kompatibilität

IronPDF unterstützt fast alle Betriebssysteme und Frameworks, die mit C# kompatibel sind, wie zum Beispiel:

  • Windows
  • .NET Core 2.1, 3.0, 3.1, .NET 6 & 5
  • .NET Standard 2.0 Compliance für universelle Kompatibilität
  • Azure
  • AWS
  • Docker
  • Linux

3. PDFNet

Das PDFNet .NET SDK von PDFTron bringt präzise PDF-Verarbeitung, Annotation, Bearbeitung und Erstellung auf jedes Framework oder jede Anwendung im Web, auf Mobilgeräten, Desktops oder Servern. Es verwaltet den gesamten Dokumenten- und Informationsmanagementprozess mit Ihrer Infrastruktur und eliminiert die Notwendigkeit für Abhängigkeiten von Drittanbieter-Servern. Die Webplattform von PDFTron kommt mit einer JS-Version mit der unterstützten Plattform und einem Demo-Lizenzschlüssel für alle PDF-SDKs.

Einer der bedeutendsten Vorteile von PDFNet ist, dass es wirklich plattformübergreifend ist, was unseren Benutzern ermöglicht, einfach PDF-Kompatibilität und relevante Geschäftsfunktionalität zu ihren Workflows und Apps in vielen verschiedenen mobilen und Desktop-Kontexten hinzuzufügen, während sie praktisch die gleiche Schnittstelle nutzen.

3.1. PDFNet SDK-Funktionen

3.1.1. Kompatibilität

Das PDFNet SDK ist mit vielen Plattformen und Frameworks kompatibel. Um Plattformkonsistenz sicherzustellen, wird die JavaScript-API auf die gleiche Weise wie die PDFNet-API genutzt. Node.js- und Electron-Versionen des SDK sind ebenfalls verfügbar. Dieses Paket erfordert nicht verwaltete Add-On-Binaries.

3.1.2. Bearbeiten und Betrachten

Bietet sichere und skalierbare Lese- und Bearbeitungsfähigkeiten für PDFs auf verschiedenen Plattformen.

3.1.3. Unterzeichnung

Erstellen Sie maßgeschneiderte Signaturverfahren. Digitalsignierte Dokumente können zertifiziert, validiert und versiegelt werden.

3.1.4. Echte Redaktion

Entfernen Sie vertrauliche Daten aus Dokumenten, wie persönliche Informationen oder persönliche Gesundheitsinformationen, während das Dokument durchsuchbar bleibt.

3.1.5. Manipulation der Seite

Geben Sie den Projektnamen ein und wählen Sie den Pfad im Textfeld aus. Dokumente können zusammengebaut, zusammengeführt oder in Teile geteilt werden. Sehen Sie mehrere Dokumente gleichzeitig im gleichen Leser oder nebeneinander an.

4. Ein neues Projekt in Visual Studio erstellen

In diesem Artikel verwenden wir eine Konsolenanwendung, um PDF-Dokumente zu erstellen.

Öffnen Sie die Visual Studio-Software und gehen Sie zum Datei-Menü. Wählen Sie "neues Projekt" und dann Konsolenanwendung auswählen.

Geben Sie den Projektname ein und wählen Sie den Pfad im entsprechenden Textfeld. Klicken Sie auf Erstellen. Wählen Sie das erforderliche .NET Framework wie im folgenden Screenshot:

A Comparison Between IronPDF and PDFNet, Figure 1

Das Visual Studio-Projekt wird nun die Struktur für die Konsolenanwendung generieren. Sobald es fertig ist, wird die Program.cs-Datei geöffnet, in der Sie Quellcode schreiben und ausführen können.

A Comparison Between IronPDF and PDFNet, Figure 2

Jetzt können wir die Bibliothek hinzufügen und das Programm testen.

5. Installieren Sie die IronPDF-Bibliothek

Die IronPDF-Bibliothek kann auf vier verschiedene Arten heruntergeladen und installiert werden. Diese sind:

5.1 Verwendung des Visual Studio NuGet-Paketmanagers

Die Visual Studio-Software bietet die NuGet-Paket-Manager-Option, um das Paket direkt in die Lösung zu installieren. Der folgende Screenshot zeigt, wie der NuGet-Paketmanager geöffnet wird.

A Comparison Between IronPDF and PDFNet, Figure 3

Sobald der Paketmanager geöffnet ist, klicken Sie auf die Registerkarte Durchsuchen und suchen Sie nach "IronPDF:"

A Comparison Between IronPDF and PDFNet, Figure 4

Im obigen Bild sehen wir die Liste der verwandten Pakete aus der Suche. Wählen Sie die Option IronPDF aus und installieren Sie das Paket in unserer Lösung.

5.2 Verwendung der Visual Studio Befehlszeile

  • Im Visual Studio-Menü zu Tools > NuGet-Paketmanager > Paketmanager-Konsole gehen.
A Comparison Between IronPDF and PDFNet, Figure 5

  • Geben Sie die folgende Zeile in die Paket-Manager-Konsole ein:
Install-Package IronPdf

Das IronPDF-Paket wird nun im Projekt installiert.

A Comparison Between IronPDF and PDFNet, Figure 6

5.3 Direkter Download von der NuGet-Webseite

Der dritte Weg ist, das NuGet-Paket direkt von der NuGet Gallery IronPDF Package herunterzuladen.

  • Wählen Sie die Download-Paket-Option im Menü auf der rechten Seite.
  • Doppelklicken Sie auf das heruntergeladene Paket; es wird automatisch installiert.
  • Laden Sie dann die Lösung neu und beginnen Sie, sie im Projekt zu verwenden.

5.4 Direkter Download von der IronPDF-Webseite

Laden Sie das neueste Paket direkt von der IronPDF-Downloadseite herunter. Nach dem Download folgen Sie den unten aufgeführten Schritten, um das Paket dem Projekt hinzuzufügen.

  • Klicken Sie mit der rechten Maustaste auf das Projekt im Lösungsfenster.
  • Wählen Sie dann die Optionenreferenz und durchsuchen Sie den Speicherort der heruntergeladenen Referenz.
  • Klicken Sie auf OK, um die Referenz hinzuzufügen.

6. das PDFNet SDK installieren

Das PDFNet SDK kann auf vier verschiedene Arten heruntergeladen und installiert werden.

  • Durch den Visual Studio NuGet-Paketmanager.
  • Verwenden der Visual Studio-Befehlszeile.
  • Direkter Download aus der NuGet Gallery PDFNet Package.
  • Verwenden von PDFNetLoader.dll

6.1. Verwendung des Visual Studio NuGet-Paketmanagers

Wie oben beschrieben, gehen Sie in Visual Studio zu Tools und öffnen Sie den NuGet-Paketmanager. Eine Liste wird angezeigt — klicken Sie auf Manage NuGet-Paket für Lösungen.

A Comparison Between IronPDF and PDFNet, Figure 7

Ein Fenster mit einer Suchleiste wird angezeigt. Suchen Sie nach PDFNet und installieren Sie es im Projekt.

6.2. Verwendung der Visual Studio Befehlszeile

  • Im Visual Studio-Menü zu Tools > NuGet-Paketmanager > Paketmanager-Konsole gehen.
  • Geben Sie die folgende Zeile in die Paket-Manager-Konsole ein:
Install-Package PDFNet -Version 9.2.0
A Comparison Between IronPDF and PDFNet, Figure 8

6.3. Direkter Download von der NuGet-Webseite

Der dritte Weg ist, das NuGet-Paket direkt von der NuGet Gallery PDFNet Package herunterzuladen.

  • Wählen Sie die Download-Paketoption im Menü auf der rechten Seite.
  • Doppelklicken Sie auf das heruntergeladene Paket, um den Installationsprozess zu starten.

6.4. PDFNetLoader.dll verwenden

Sie können die PDFNet-API auch mit der PDFNetLoader.dll-Datei installieren. Laden Sie es von GitHub Releases für PDFNetLoader.dll herunter.

Laden Sie das Paket herunter, legen Sie es in die bin-Datei des Projekts und führen Sie es aus. Fügen Sie in Ihrem Visual Studio-Projekt PDFNetLoader.dll als Referenz hinzu.

Bootstrap und CSS Framework Rendering

Moderne Webanwendungen verlassen sich stark auf Bootstrap- und CSS-Frameworks für konsistentes, responsives Design. Wenn PDFs aus Webinhalten generiert werden, ist die Fähigkeit, diese Frameworks ohne Änderungen genau zu rendern, entscheidend, um Designkonsistenz aufrechtzuerhalten und den Entwicklungsaufwand zu verringern.

IronPDF: Vollständige Unterstützung des Bootstrap Frameworks

  • Bootstrap 5: Vollständiges Flexbox-Layoutsystem, CSS Grid, Hilfsklassen und alle Komponentenbibliotheken
  • Bootstrap 4: Vollständige Kartenkomponenten, Navigation, Flexbox-Funktionen und responsives Design Tailwind CSS: Alle Utility-First-Klassen werden browsergenau gerendert.
  • Fundament: Vollständiges Grid-System und Komponentenunterstützung
  • Modernes CSS3: Flexbox, CSS Grid, benutzerdefinierte Eigenschaften, Animationen, Übergänge und Transformationen

Echte Validierung: IronPDF rendert die Bootstrap-Startseite und alle offiziellen Beispiele mit pixelgenauer Genauigkeit.

Code Beispiel: Learning Management System Dashboard

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapLMS = @"
<!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-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <div>
                <h1 class='display-6 mb-1'>Student Learning Dashboard</h1>
                <p class='text-muted mb-0'>Spring Semester 2025</p>
            </div>
            <span class='badge bg-success fs-5'>92% Overall Progress</span>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-primary'>
                    <div class='card-body'>
                        <div class='text-primary mb-2' style='font-size: 2rem;'>📚</div>
                        <h3 class='mb-1'>6/8</h3>
                        <p class='text-muted mb-0'>Courses Completed</p>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-success'>
                    <div class='card-body'>
                        <div class='text-success mb-2' style='font-size: 2rem;'>🎯</div>
                        <h3 class='mb-1'>24/28</h3>
                        <p class='text-muted mb-0'>Assignments Submitted</p>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-warning'>
                    <div class='card-body'>
                        <div class='text-warning mb-2' style='font-size: 2rem;'>⏱️</div>
                        <h3 class='mb-1'>48hrs</h3>
                        <p class='text-muted mb-0'>Study Time This Week</p>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-info'>
                    <div class='card-body'>
                        <div class='text-info mb-2' style='font-size: 2rem;'>⭐</div>
                        <h3 class='mb-1'>A- Average</h3>
                        <p class='text-muted mb-0'>Current GPA: 3.7</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-primary text-white'>
                        <h5 class='mb-0'>Current Courses</h5>
                    </div>
                    <div class='card-body p-0'>
                        <div class='list-group list-group-flush'>
                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Advanced Web Development</h6>
                                        <small class='text-muted'>Prof. Johnson | Mondays & Wednesdays, 2:00 PM</small>
                                    </div>
                                    <span class='badge bg-success'>Grade: A</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-success' style='width: 95%'></div>
                                </div>
                                <small class='text-muted'>95% Complete | Final Project Due: May 15</small>
                            </div>

                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Database Systems</h6>
                                        <small class='text-muted'>Prof. Chen | Tuesdays & Thursdays, 10:00 AM</small>
                                    </div>
                                    <span class='badge bg-primary'>Grade: A-</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-primary' style='width: 88%'></div>
                                </div>
                                <small class='text-muted'>88% Complete | Midterm: April 28</small>
                            </div>

                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Artificial Intelligence Fundamentals</h6>
                                        <small class='text-muted'>Prof. Martinez | Fridays, 1:00 PM</small>
                                    </div>
                                    <span class='badge bg-warning text-dark'>Grade: B+</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-warning' style='width: 75%'></div>
                                </div>
                                <small class='text-muted'>75% Complete | Research Paper Due: May 5</small>
                            </div>

                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Computer Networks</h6>
                                        <small class='text-muted'>Prof. Davis | Mondays & Wednesdays, 4:00 PM</small>
                                    </div>
                                    <span class='badge bg-success'>Grade: A</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-success' style='width: 92%'></div>
                                </div>
                                <small class='text-muted'>92% Complete | Lab Exam: April 30</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm mb-3'>
                    <div class='card-header bg-warning text-dark'>
                        <h5 class='mb-0'>Upcoming Deadlines</h5>
                    </div>
                    <div class='card-body p-0'>
                        <ul class='list-group list-group-flush'>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-danger me-2'>Today</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>AI Assignment 4</strong></small>
                                        <br><small class='text-muted'>Neural Networks Lab</small>
                                    </div>
                                </div>
                            </li>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-warning text-dark me-2'>Apr 28</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>Database Midterm</strong></small>
                                        <br><small class='text-muted'>Chapters 1-8</small>
                                    </div>
                                </div>
                            </li>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-info me-2'>Apr 30</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>Networks Lab Exam</strong></small>
                                        <br><small class='text-muted'>Practical Assessment</small>
                                    </div>
                                </div>
                            </li>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-primary me-2'>May 5</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>AI Research Paper</strong></small>
                                        <br><small class='text-muted'>15-20 pages</small>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </div>
                </div>

                <div class='card shadow-sm'>
                    <div class='card-header bg-info text-white'>
                        <h5 class='mb-0'>Study Resources</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-outline-primary btn-sm'>📖 Course Materials</button>
                            <button class='btn btn-outline-primary btn-sm'>💬 Discussion Forums</button>
                            <button class='btn btn-outline-primary btn-sm'>🎥 Recorded Lectures</button>
                            <button class='btn btn-outline-primary btn-sm'>📝 Practice Quizzes</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapLMS);
pdf.SaveAs("lms-dashboard.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapLMS = @"
<!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-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <div>
                <h1 class='display-6 mb-1'>Student Learning Dashboard</h1>
                <p class='text-muted mb-0'>Spring Semester 2025</p>
            </div>
            <span class='badge bg-success fs-5'>92% Overall Progress</span>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-primary'>
                    <div class='card-body'>
                        <div class='text-primary mb-2' style='font-size: 2rem;'>📚</div>
                        <h3 class='mb-1'>6/8</h3>
                        <p class='text-muted mb-0'>Courses Completed</p>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-success'>
                    <div class='card-body'>
                        <div class='text-success mb-2' style='font-size: 2rem;'>🎯</div>
                        <h3 class='mb-1'>24/28</h3>
                        <p class='text-muted mb-0'>Assignments Submitted</p>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-warning'>
                    <div class='card-body'>
                        <div class='text-warning mb-2' style='font-size: 2rem;'>⏱️</div>
                        <h3 class='mb-1'>48hrs</h3>
                        <p class='text-muted mb-0'>Study Time This Week</p>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center shadow-sm border-info'>
                    <div class='card-body'>
                        <div class='text-info mb-2' style='font-size: 2rem;'>⭐</div>
                        <h3 class='mb-1'>A- Average</h3>
                        <p class='text-muted mb-0'>Current GPA: 3.7</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-primary text-white'>
                        <h5 class='mb-0'>Current Courses</h5>
                    </div>
                    <div class='card-body p-0'>
                        <div class='list-group list-group-flush'>
                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Advanced Web Development</h6>
                                        <small class='text-muted'>Prof. Johnson | Mondays & Wednesdays, 2:00 PM</small>
                                    </div>
                                    <span class='badge bg-success'>Grade: A</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-success' style='width: 95%'></div>
                                </div>
                                <small class='text-muted'>95% Complete | Final Project Due: May 15</small>
                            </div>

                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Database Systems</h6>
                                        <small class='text-muted'>Prof. Chen | Tuesdays & Thursdays, 10:00 AM</small>
                                    </div>
                                    <span class='badge bg-primary'>Grade: A-</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-primary' style='width: 88%'></div>
                                </div>
                                <small class='text-muted'>88% Complete | Midterm: April 28</small>
                            </div>

                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Artificial Intelligence Fundamentals</h6>
                                        <small class='text-muted'>Prof. Martinez | Fridays, 1:00 PM</small>
                                    </div>
                                    <span class='badge bg-warning text-dark'>Grade: B+</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-warning' style='width: 75%'></div>
                                </div>
                                <small class='text-muted'>75% Complete | Research Paper Due: May 5</small>
                            </div>

                            <div class='list-group-item'>
                                <div class='d-flex justify-content-between align-items-center mb-2'>
                                    <div>
                                        <h6 class='mb-1'>Computer Networks</h6>
                                        <small class='text-muted'>Prof. Davis | Mondays & Wednesdays, 4:00 PM</small>
                                    </div>
                                    <span class='badge bg-success'>Grade: A</span>
                                </div>
                                <div class='progress' style='height: 6px;'>
                                    <div class='progress-bar bg-success' style='width: 92%'></div>
                                </div>
                                <small class='text-muted'>92% Complete | Lab Exam: April 30</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm mb-3'>
                    <div class='card-header bg-warning text-dark'>
                        <h5 class='mb-0'>Upcoming Deadlines</h5>
                    </div>
                    <div class='card-body p-0'>
                        <ul class='list-group list-group-flush'>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-danger me-2'>Today</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>AI Assignment 4</strong></small>
                                        <br><small class='text-muted'>Neural Networks Lab</small>
                                    </div>
                                </div>
                            </li>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-warning text-dark me-2'>Apr 28</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>Database Midterm</strong></small>
                                        <br><small class='text-muted'>Chapters 1-8</small>
                                    </div>
                                </div>
                            </li>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-info me-2'>Apr 30</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>Networks Lab Exam</strong></small>
                                        <br><small class='text-muted'>Practical Assessment</small>
                                    </div>
                                </div>
                            </li>
                            <li class='list-group-item'>
                                <div class='d-flex align-items-start'>
                                    <span class='badge bg-primary me-2'>May 5</span>
                                    <div class='flex-grow-1'>
                                        <small><strong>AI Research Paper</strong></small>
                                        <br><small class='text-muted'>15-20 pages</small>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </div>
                </div>

                <div class='card shadow-sm'>
                    <div class='card-header bg-info text-white'>
                        <h5 class='mb-0'>Study Resources</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-outline-primary btn-sm'>📖 Course Materials</button>
                            <button class='btn btn-outline-primary btn-sm'>💬 Discussion Forums</button>
                            <button class='btn btn-outline-primary btn-sm'>🎥 Recorded Lectures</button>
                            <button class='btn btn-outline-primary btn-sm'>📝 Practice Quizzes</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapLMS);
pdf.SaveAs("lms-dashboard.pdf");
$vbLabelText   $csharpLabel

Ergebnis: Professionelles Lernmanagementsystem (PDF) mit Bootstrap 5-Grid-System, Kartenkomponenten, Fortschrittsbalken, Badges, Flexbox-Layouts und Listengruppen – alles perfekt gerendert mit exakten Abständen, Typografie und Farbgenauigkeit.

PDFNet (Apryse): Teilweise moderne CSS-Unterstützung

PDFNet verwendet eine benutzerdefinierte HTML-Renderer-Engine mit selektiver CSS3-Unterstützung:

  • Eingeschränkte Flexbox-Implementierung: Bootstrap 4/5-Layouts auf Flexbox-Basis werden möglicherweise inkonsistent dargestellt.
  • Teilweise CSS-Grid-Unterstützung: Grid-basierte Designs benötigen oft Fallbacks.
  • JavaScript-Einschränkungen: Minimale Ausführung im Vergleich zu vollständigen Browserumgebungen
  • Framework-Tests erforderlich: Bootstrap-Komponenten müssen vor dem Produktiveinsatz validiert werden.

Auswirkungen auf die Entwicklung: Die Teams müssen jede Bootstrap-Komponente einzeln testen und erstellen oft vereinfachte Layouts oder alternatives CSS für PDFNet, was die Komplexität erhöht und die Designkonsistenz verringert.

Für umfassende Bootstrap-Framework-Leitfäden und moderne CSS-Renderfähigkeiten, siehe die Bootstrap & Flexbox CSS Guide.

7. eine PDF-Datei drucken (Code-Beispiele)

Das Drucken einer PDF-Datei ist eine unverzichtbare Funktion für moderne Anwendungen, die mit PDFs umgehen. Hier werden wir besprechen, wie man PDF-Dateien mit beiden Tools druckt.

7.1. Drucken einer PDF-Datei mit IronPDF

IronPDF druckt ein PDF, indem es an den Standarddrucker des Computers gesendet wird. Dies öffnet die Windows-Druckoberfläche — einfach auf Drucken klicken, um es geschehen zu lassen.

using IronPdf;

class PrintPDF
{
    static void Main(string[] args)
    {
        // Create a new PDF and print it
        var Renderer = new IronPdf.ChromePdfRenderer();
        PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

        // Send the PDF to the default printer to print
        Pdf.Print(300, false);
    }
}
using IronPdf;

class PrintPDF
{
    static void Main(string[] args)
    {
        // Create a new PDF and print it
        var Renderer = new IronPdf.ChromePdfRenderer();
        PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

        // Send the PDF to the default printer to print
        Pdf.Print(300, false);
    }
}
$vbLabelText   $csharpLabel

7.2. Drucken einer PDF-Datei mit PDFNet

Das PDFNet SDK von PDFTron bietet auch eine Druckfunktion. Nachfolgend ist der Quellcodeausschnitt zum Drucken einer PDF-Datei in PDFNet.

using System;
using pdftron;
using pdftron.PDF;
using pdftron.Common;
using pdftron.Filters;

namespace PDFPrintTestCS
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Opening the input file...");
            using (PDFDoc pdfdoc = new PDFDoc("tiger.pdf"))
            {
                pdfdoc.InitSecurityHandler();
                Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob...");
                PrinterMode printerMode = new PrinterMode();
                printerMode.SetAutoCenter(true);
                printerMode.SetAutoRotate(true);
                printerMode.SetCollation(true);
                printerMode.SetCopyCount(1);
                printerMode.SetDPI(300); // Set print quality to 300 DPI
                printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto);
                printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom);
                printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait);
                printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations);
                printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale);
                printerMode.SetOutputPageBorder(false);
                printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium);
                printerMode.SetPaperSize(new Rect(0, 0, 612, 792));
                PageSet pagesToPrint = new PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all);
                Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, null);
            }
        }
    }
}
using System;
using pdftron;
using pdftron.PDF;
using pdftron.Common;
using pdftron.Filters;

namespace PDFPrintTestCS
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Opening the input file...");
            using (PDFDoc pdfdoc = new PDFDoc("tiger.pdf"))
            {
                pdfdoc.InitSecurityHandler();
                Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob...");
                PrinterMode printerMode = new PrinterMode();
                printerMode.SetAutoCenter(true);
                printerMode.SetAutoRotate(true);
                printerMode.SetCollation(true);
                printerMode.SetCopyCount(1);
                printerMode.SetDPI(300); // Set print quality to 300 DPI
                printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto);
                printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom);
                printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait);
                printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations);
                printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale);
                printerMode.SetOutputPageBorder(false);
                printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium);
                printerMode.SetPaperSize(new Rect(0, 0, 612, 792));
                PageSet pagesToPrint = new PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all);
                Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, null);
            }
        }
    }
}
$vbLabelText   $csharpLabel

8. PDFs aus HTML erstellen

Beide Bibliotheken besitzen HTML-zu-PDF-Konvertierungsfähigkeiten, aber die Methoden sind leicht unterschiedlich.

8.1. PDFs aus HTML mit IronPDF erstellen

IronPDF benötigt weder die Verwendung von JSON noch Verschlüsselungsmechanismen. IronPDF unterstützt eine Vielzahl von Methoden. Zum Beispiel:

HTML-Dateien in PDF

using IronPdf;

class HtmlToPdf
{
    static void Main(string[] args)
    {
        var Renderer = new IronPdf.ChromePdfRenderer();
        Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
    }
}
using IronPdf;

class HtmlToPdf
{
    static void Main(string[] args)
    {
        var Renderer = new IronPdf.ChromePdfRenderer();
        Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
    }
}
$vbLabelText   $csharpLabel

URL zu PDF

using IronPdf;

class UrlToPdf
{
    static void Main(string[] args)
    {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
        Pdf.SaveAs("url.pdf");
    }
}
using IronPdf;

class UrlToPdf
{
    static void Main(string[] args)
    {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
        Pdf.SaveAs("url.pdf");
    }
}
$vbLabelText   $csharpLabel
A Comparison Between IronPDF and PDFNet, Figure 9

8.2. PDFs aus HTML mit PDFNet erstellen

PDFNet bietet ebenfalls HTML-zu-PDF-Konvertierungsfunktionen mit sowohl Seitenkonvertierung als auch URL-Konvertierung. Aufgrund des langen Codes werden wir Ihnen hier nur ein Beispiel geben.

class HTML2PDFSample
{
    private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
    static HTML2PDFSample() {}

    static void Main(string[] args)
    {
        string output_path = "../../../../TestFiles/Output/html2pdf_example";
        string host = "https://www.pdftron.com";
        HTML2PDF.SetModulePath("../../../../../Lib");

        if (!HTML2PDF.IsModuleAvailable())
        {
            Console.WriteLine();
            Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.");
            return;
        }

        try
        {
            using (PDFDoc doc = new PDFDoc())
            {
                if (HTML2PDF.Convert(doc, host + "/"))
                    doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized);
                else
                    Console.WriteLine("Conversion failed.");
            }
        }
        catch (PDFNetException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
class HTML2PDFSample
{
    private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
    static HTML2PDFSample() {}

    static void Main(string[] args)
    {
        string output_path = "../../../../TestFiles/Output/html2pdf_example";
        string host = "https://www.pdftron.com";
        HTML2PDF.SetModulePath("../../../../../Lib");

        if (!HTML2PDF.IsModuleAvailable())
        {
            Console.WriteLine();
            Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.");
            return;
        }

        try
        {
            using (PDFDoc doc = new PDFDoc())
            {
                if (HTML2PDF.Convert(doc, host + "/"))
                    doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized);
                else
                    Console.WriteLine("Conversion failed.");
            }
        }
        catch (PDFNetException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
$vbLabelText   $csharpLabel
A Comparison Between IronPDF and PDFNet, Figure 10

9. Lizenzierung

IronPDF ist eine Bibliothek, die eine kostenlose Entwicklerlizenz anbietet. IronPDF bietet auch eine spezielle Preisstruktur: Das leichte Paket beginnt bei $799 ohne versteckte Kosten. Es ist auch möglich, SaaS- und OEM-Produkte weiterzuverteilen. Alle Lizenzen beinhalten eine 30-Tage-Geld-zurück-Garantie, ein Jahr Software-Support und Upgrades, Entwicklungs-/Test-/Staging-/Produktionsgültigkeit und eine unbefristete Lizenz (Einmalkauf). IronPDF-Lizenzen bieten maximale Leistung für die Bedürfnisse der Benutzer. Gehen Sie zu dieser IronPDF-Lizenzierungsseite, um die gesamte Preisstruktur und Lizenz von IronPDF zu sehen.

A Comparison Between IronPDF and PDFNet, Figure 11

Das PDFTron PDFNet SDK wird mit mehreren Lizenzoptionen geliefert, die auf Ihre Geschäftsanforderungen zugeschnitten sind. Drei Arten von Lizenzen kommen mit Unternehmens- und OEM-Vertriebsoptionen. Unternehmenslizenzen sind nur für die Nutzung in Organisationen vorgesehen und können nicht in der App-Verteilung verwendet werden. Zusätzliche APIs, die Dateisystemzugriff erfordern, sind auch mit den Lizenzen enthalten. Alle Lizenzen kommen mit einem Lizenzschlüssel. Die drei Arten von Lizenzen sind:

  • Viewer
  • Viewer & Annotation
  • Kern-SDK

Für weitere Informationen über ihre Lizenzstrukturen besuchen Sie bitte diese PDFTron-Lizenzierungsinformationsseite.

10. Fazit

IronPDF bietet viele Funktionen und Funktionen für die Verarbeitung von PDF-Dateien und deren Umwandlung in verschiedene Formate. Umwandlungen von HTML zu PDF werden in einem Vektorformat produziert, das für den hochwertigen kommerziellen Druck geeignet ist. Folglich erhalten Sie ein klares, hochwertiges PDF. Lizenz- und Preisinformationen finden Sie auf der Website.

Ähnlich wie IronPDF hilft PDFNet beim Übergang, bei Annotationen, Signaturen, beim Ausfüllen, bei der Konvertierung und Bearbeitung von PDF-Dateien. Es unterstützt mehrere Plattformen, einschließlich Windows, iOS, Android, WEB und Linux. Für die Produktionsnutzung benötigen PDFNet-SDKs einen Produktschlüssel.

IronPDF-Lizenzen sind entwicklerzentriert, was bedeutet, dass Sie eine Lizenz basierend auf der Anzahl der Entwickler erwerben müssen, die das Produkt verwenden werden. Auf der anderen Seite funktionieren PDFNet-Lizenzen nicht auf dieselbe Weise, sondern operieren stattdessen auf einer funktionsbasierten Lizenz. Das bedeutet, dass Sie die Lizenz erwerben müssen, die die erforderlichen Funktionen unterstützt. IronPDF-Lizenzen enthalten alle Funktionen sofort. Bei PDFNet müssen einige Funktionen, wie z.B. die Dokumentenkonvertierung, als Add-Ons gekauft werden.

Die IronPDF-Bibliothek bietet Funktionen in organisierter Weise, was es einfach macht, Code zu schreiben, der große Aufgaben mit nur wenigen Zeilen Code ausführt. Iron Software bietet derzeit ein Fünf-Tool-Paket zum Preis von nur zwei an. Die Tools, die in der Iron Suite enthalten sind, sind:

Bitte besuchen Sie diese Iron Suite Informationsseite, um die Iron Suite zu erkunden.

Hinweis:PDFTron ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite steht nicht in Verbindung, wird weder von PDFTron unterstützt noch 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

Welche wichtigen PDF-Bibliotheken werden im Artikel verglichen?

Der Artikel vergleicht IronPDF, entwickelt von Iron Software, und PDFNet von PDFTron, mit Fokus auf ihre Fähigkeiten für C#-Entwickler innerhalb des .NET Frameworks.

Wie kann ich HTML in PDF in C# konvertieren?

Sie können die Methode RenderHtmlAsPdf von IronPDF verwenden, um HTML-Strings in PDFs zu konvertieren. Darüber hinaus können Sie HTML-Dateien und URLs mit IronPDFs robuster Chrom-Engine in PDFs konvertieren.

Welche Betriebssysteme werden von IronPDF unterstützt?

IronPDF unterstützt mehrere Betriebssysteme, einschließlich Windows, Azure und Docker, was eine nahtlose Integration in verschiedene Entwicklungsumgebungen ermöglicht.

Wie handhabt IronPDF die Extraktion von PDF-Daten?

IronPDF ermöglicht eine effiziente Extraktion von PDF-Daten, sodass Entwickler Text und Bilder problemlos aus PDF-Dokumenten für die weitere Verarbeitung abrufen können.

Welche Installationsoptionen gibt es für IronPDF?

IronPDF kann über den Visual Studio NuGet Package Manager, die Visual Studio-Befehlszeile oder direkt aus der NuGet Gallery installiert werden und gewährleistet so eine einfache Einrichtung für Entwickler.

Was sind die Lizenzunterschiede zwischen IronPDF und PDFNet?

IronPDF bietet entwicklerzentrierte Lizenzen, die alle Funktionen umfassen, während PDFNet-Lizenzen funktionsbasiert sind und möglicherweise zusätzliche Käufe für bestimmte Funktionen erfordern.

Ist IronPDF für große PDF-Aufgaben geeignet?

Ja, IronPDF wird für seine Benutzerfreundlichkeit und minimalen Codeanforderungen gelobt, was es für die effiziente Bearbeitung großer PDF-Aufgaben geeignet macht.

Welche zusätzlichen Tools sind in der Iron Software-Suite enthalten?

Die Iron Software-Suite umfasst IronBarcode, IronXL, IronOCR, IronPDF und IronWebscraper, verfügbar als Paketangebot, das seine Attraktivität für Entwickler erhöht.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen