Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

Ein Vergleich zwischen Report .NET und IronPDF

In diesem Artikel werfen wir einen genauen Blick auf zwei beliebte C#-Bibliotheken, die für die Arbeit mit PDF-Dateien verwendet werden: IronPDF - Die .NET PDF-Bibliothek für C#-Entwickler und Report.NET. Diese Tools sind unerlässlich für Entwickler, die PDF-Dokumente über ihre C#-Anwendungen erstellen, ändern oder interagieren müssen. Beide Bibliotheken bieten eine Vielzahl von Funktionen, die das Handling von PDFs erleichtern und effizienter machen; sie tun dies jedoch auf unterschiedliche Weise.

IronPDF und Report.NET ermöglichen es Entwicklern, dynamisch Dokumente zu erstellen, Inhalte zu bearbeiten und Text und Bilder aus PDFs zu extrahieren. Sie unterstützen auch das Verarbeiten von Formularen, das Hinzufügen digitaler Signaturen und stellen sicher, dass Anwendungen PDFs über verschiedene Plattformen hinweg verarbeiten können, ohne dass die Dokumententreue verloren geht. Das bedeutet, dass die PDFs unabhängig vom Gerät oder Betriebssystem wie beabsichtigt aussehen und funktionieren.

Im Verlauf dieses Vergleichs werden wir auf die spezifischen Funktionen eingehen, die jede Bibliothek bietet, wie sie funktionieren, Codeausschnitte bereitstellen, um zu veranschaulichen, wie sie verwendet werden können, und über ihre Lizenzbedingungen sprechen. Dieser Vergleich soll Entwicklern ein klares Verständnis dafür geben, was jede Bibliothek leisten kann, um ihnen zu helfen, zu entscheiden, welche am besten zu ihren Projektanforderungen passt. Lassen Sie uns die Fähigkeiten und Unterschiede zwischen IronPDF und Report.NET aufschlüsseln, mit Fokus auf Einfachheit und praxisnahe Einblicke für Entwickler.

1. Report.NET C# Bibliothek

Report.NET ist eine robuste C#-Bibliothek, die entwickelt wurde, um Entwicklern zu helfen, PDF-Dokumente direkt innerhalb ihrer .NET-Anwendungen zu erstellen, zu verwalten und zu manipulieren. Dieses Tool ist bekannt für seinen einfachen Ansatz zur PDF-Erzeugung und -Manipulation, der es ermöglicht, komplexe PDF-Dokumente von Grund auf zu erstellen oder bestehende zu bearbeiten. Seine Möglichkeiten reichen von der einfachen Texteingabe bis hin zur Integration von Bildern und Formen, was es zu einer vielseitigen Wahl für Entwickler macht, die PDF-Funktionalitäten in ihren Projekten implementieren möchten.

1.1 Hauptmerkmale von Report.NET

1.1.1 Erstellung und Bearbeitung von Dokumenten

Report.NET glänzt bei der Erstellung neuer PDF-Dokumente und der Bearbeitung bestehender. Entwickler können problemlos Text, Bilder und Grafiken hinzufügen und so detaillierte und optisch ansprechende Dokumente erstellen.

1.1.2 Flexibilität bei der Inhaltsverwaltung

Diese Bibliothek ermöglicht eine präzise Kontrolle über den Inhalt des Dokuments, einschließlich Textformatierung, Bildplatzierung und grafischen Elementen. Dieses Maß an Kontrolle stellt sicher, dass das endgültige PDF genau so aussieht, wie beabsichtigt.

1.1.3 Benutzerfreundlichkeit

Mit einem Fokus auf Einfachheit vereinfacht Report.NET den PDF-Generierungsprozess und macht ihn auch für diejenigen zugänglich, die neu im Umgang mit PDFs im Programmierkontext sind.

1.1.4 Kompatibilität über Plattformen hinweg

Report.NET ist so konzipiert, dass es nahtlos über die .NET-Plattform, einschließlich .NET Core, funktioniert und sicherstellt, dass Anwendungen PDFs unabhängig vom Betriebssystem erzeugen und verwalten können.

1.1.5 Anpassung und Styling

Die Bibliothek bietet umfangreiche Anpassungsoptionen für PDF-Dokumente und ermöglicht es Entwicklern, Layout, Styling und Gesamtoptik an ihre spezifischen Bedürfnisse anzupassen.

1.1.6 Offene Quellen

Als Open-Source-Tool profitiert Report.NET von Beiträgen aus der Gemeinschaft, die dafür sorgen, dass es auf dem neuesten Stand bleibt und im Laufe der Zeit neue Funktionen erhält. Diese Unterstützung aus der Gemeinschaft bedeutet auch, dass Entwickler auf eine Fülle von Wissen und Ressourcen zugreifen können.

2. IronPDF C# Bibliothek

IronPDF ist eine umfassende .NET-Bibliothek, die zur Erleichterung der Erstellung, Manipulation und Darstellung von PDF-Dokumenten innerhalb von .NET-Anwendungen entwickelt wurde. Dieses Tool sticht durch seine Fähigkeit hervor, sowohl PDFs aus HTML zu erzeugen als auch bestehende PDF-Dateien direkt zu bearbeiten. Es ist sehr hilfreich bei der Erstellung von Berichten. IronPDF integriert sich auch nahtlos mit SQL Server Reporting Services. Wir können mit IronPDF einen Endnutzer-Berichtsdesigner erstellen, um ein Berichterstellungstool und einen Berichtsbetrachter zu erstellen.

2.1 Hauptmerkmale von IronPDF

2.1.1 Konvertierung von HTML in PDF

Einer der Hauptvorteile von IronPDF ist seine Fähigkeit, HTML und CSS in PDF-Dokumente zu konvertieren. Diese Funktion ist für Entwickler, die Webinhalte in ein portables Format umwandeln möchten, von unschätzbarem Wert, während das ursprüngliche Design und Layout erhalten bleiben.

2.1.2 PDF-Bearbeitung

IronPDF glänzt darin, Entwicklern Werkzeuge zur Bearbeitung und Manipulation von PDF-Dokumenten bereitzustellen. Dies beinhaltet das Hinzufügen oder Entfernen von Seiten, das Ändern von Text und das Einbetten von Bildern. Wir können auch Berichtsdaten aus den Berichten mit IronPDF extrahieren.

2.1.3 Formularverarbeitung

Die Bibliothek unterstützt die Erstellung und Bearbeitung von PDF-Formularen, die es Benutzern ermöglichen, auf dynamische Weise mit Dokumenten zu interagieren. Diese Funktionalität ist entscheidend für Anwendungen, die Eingaben von Endnutzern erfordern, wie Umfragen oder Antragsformulare.

2.1.4 Sicherheitsmerkmale

Mit IronPDF ist die Implementierung von Sicherheitsmaßnahmen wie Verschlüsselung und Passwortschutz unkompliziert. Diese Funktionen stellen sicher, dass sensible Informationen innerhalb von PDF-Dokumenten vor unbefugtem Zugriff geschützt bleiben.

2.1.5 Drucken und Rendering

IronPDF ermöglicht es Entwicklern, PDFs sowohl für die Bildschirmansicht als auch für den physischen Druck zu rendern, was in beiden Fällen eine hohe Ausgabequalität sicherstellt. Dies erleichtert die Vorbereitung von Dokumenten für eine Vielzahl von Präsentations- oder Vertriebsbedürfnissen.

2.1.6 Plattformübergreifende Unterstützung

IronPDF funktioniert über verschiedene .NET-Plattformen hinweg, hält sich dabei an .NET-Code-Standards und erleichtert die Entwicklung in verschiedenen Umgebungen ohne Kompatibilitätsprobleme.

2.1.7 Umfassende Dokumentation und Unterstützung

IronPDF wird unterstützt durch ausführliche Dokumentation und engagierten Support, der Entwicklern hilft, sich in den Funktionen der Bibliothek zurechtzufinden und ihre Funktionalitäten effizient in ihre Anwendungen zu integrieren.

2.1.8 Erweiterte PDF-Bearbeitung

IronPDF bietet viele erweiterte Bearbeitungsfunktionen. Dies umfasst die Möglichkeit, PDF-Dokumente zu verbinden und zu trennen, was besonders nützlich ist, um große Informationsmengen zu organisieren oder spezifische Abschnitte aus einem Dokument für die separate Nutzung zu extrahieren.

2.1.9 Benutzerdefinierte Kopf- und Fußzeilen

Die Bibliothek ermöglicht die Anpassung von Kopf- und Fußzeilen innerhalb von PDF-Dokumenten. Diese Fähigkeit ist wichtig für das Hinzufügen von konsistentem Branding, Seitennummern oder Dokumenttiteln über die Seiten hinweg, um das professionelle Erscheinungsbild des Outputs zu verbessern.

3. ein Konsolenprojekt in Visual Studio erstellen

Das Erstellen einer Konsolenanwendung in der Visual Studio IDE ist ein einfacher Prozess, der mehrere Schritte umfasst.

3.1 Visual Studio starten

Beginnen Sie, indem Sie Microsoft Visual Studio öffnen. Falls es nicht installiert ist, müssen Sie es aus der offiziellen Microsoft-Website herunterladen und installieren. Sobald es installiert ist, starten Sie Visual Studio.

3.2 Ein neues Projekt erstellen

Nach dem Öffnen von Visual Studio werden Sie im Startfenster begrüßt. Hier wählen Sie die Option "Neues Projekt erstellen", um den Prozess zur Einrichtung einer neuen Konsolenanwendung zu starten.

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 1 - Öffnen Sie Visual Studio und klicken Sie auf die Option Neues Projekt erstellen.

3.3 Wählen Sie den Projekttyp

Im Fenster "Neues Projekt erstellen" werden Ihnen verschiedene Projekttemplates präsentiert. Geben Sie "console" in das Suchfeld ein, um die Optionen zu filtern, und wählen Sie dann "Console App" aus der Liste aus. Stellen Sie sicher, dass Sie die Vorlage auswählen, die der Programmiersprache entspricht, die Sie verwenden möchten, z. B. C#.

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 2 - Wählen Sie als Nächstes den Projekttyp Konsolenanwendung in der Programmiersprache C#.

3.4 Das Projekt konfigurieren

Sobald Sie die Vorlage für die Konsolenanwendung ausgewählt haben, klicken Sie auf "Weiter", um zum Projektkonfigurationsbildschirm zu gelangen. Hier müssen Sie einige Details zu Ihrem Projekt angeben:

  • Projektname: Geben Sie Ihrem Projekt einen bedeutungsvollen Namen, der seinen Zweck widerspiegelt.
    • Speicherort: Wählen Sie, wo auf Ihrem Computer Sie die Projektdateien speichern möchten.

Ein Vergleich zwischen Report .NET & IronPDF: Abbildung 3 - Spezifizieren Sie den Projektnamen und den Speicherort für das Konsolen-App-Projekt. Standardmäßig ist der Lösungsname der gleiche wie der Projektname, aber Sie können ihn ändern.

  • Lösungsname: Standardmäßig ist dies derselbe wie Ihr Projektname, aber Sie können es ändern, wenn Sie planen, mehrere Projekte in derselben Lösung einzuschließen.
    • Framework: Wählen Sie die Version des .NET-Frameworks, die Sie anstreben möchten. Wenn Sie sich nicht sicher sind, wählen Sie die neueste Version.

Ein Vergleich zwischen Report .NET & IronPDF: Abbildung 4 - Wählen Sie die .NET-Framework-Version, die Sie verwenden möchten. Wenn Sie sich unsicher sind, wählen Sie die neueste Version.

3.5 Das Projekt erstellen

Nach dem Ausfüllen der Informationen klicken Sie auf "Erstellen". Visual Studio wird nun ein neues Konsolenanwendungsprojekt basierend auf Ihren Spezifikationen generieren. Dieser Vorgang kann einige Momente dauern.

4. die Installation der IronPDF-Bibliothek

Um die Fähigkeiten von IronPDF in Ihrem Projekt zu nutzen, müssen Sie die Bibliothek zuerst installieren. Es gibt mehrere Methoden, dies zu erreichen, die jeweils unterschiedlichen Entwicklungsworkflows oder Vorlieben entsprechen. Nachfolgend sind drei gängige Methoden zur Installation der IronPDF-Bibliothek in Ihrem Visual Studio-Projekt aufgeführt.

4.1 Installieren mit NuGet Package Manager

Die NuGet-Paket-Manager-Benutzeroberfläche in Visual Studio bietet eine einfache Möglichkeit, Pakete zu durchsuchen, auszuwählen und zu installieren.

  1. Navigieren Sie in Visual Studio zu Ihrem Projekt im Lösungsexplorer, führen Sie einen Rechtsklick darauf aus und wählen Sie die Option "Manage NuGet Packages...".
  2. Klicken Sie auf die Registerkarte "Durchsuchen" und geben Sie "IronPDF" in das Suchfeld ein.
  3. Finden Sie das IronPDF-Paket in den Suchergebnissen, wählen Sie es aus und klicken Sie dann auf die Schaltfläche "Installieren". Visual Studio kümmert sich automatisch um den Download und die Installation.

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 5 - Installieren Sie IronPDF mit der Verwaltung des NuGet-Pakets für die Lösung, indem Sie nach IronPDF in der Suchleiste des NuGet-Paketmanagers suchen, dann das Projekt auswählen und auf die Schaltfläche Installieren klicken.

4.2 Installieren mit der NuGet Package Manager Konsole

Für diejenigen, die lieber Command-Line-Tools verwenden, ist die NuGet-Paket-Manager-Konsole eine leistungsstarke Alternative.

  1. Öffnen Sie die Konsole: Gehen Sie zum Menü "Tools" in Visual Studio, dann zu "NuGet Package Manager" > "Package Manager Console".
  2. Installationsbefehl: Geben Sie in der Konsole den folgenden Befehl ein und drücken Sie Enter:
Install-Package IronPdf

Dieser Befehl weist NuGet an, die neueste Version von IronPDF in Ihr Projekt zu downloaden und zu installieren.

4.3 Installation über die NuGet-Website

Wenn Sie es vorziehen, das Paket manuell herunterzuladen oder eine bestimmte Version von IronPDF benötigen, ist die NuGet-Website eine gute Option.

  1. Besuchen Sie die NuGet-Website: Gehen Sie zu nuget.org und suchen Sie nach "IronPDF".
  2. Paket herunterladen: Auf der IronPDF-Seite wählen Sie die Version aus, die Sie benötigen, und laden Sie die .nupkg-Datei herunter.
  3. Manuelle Installation: Nachdem Sie das Paket heruntergeladen haben, können Sie es manuell zu Ihrem Projekt hinzufügen. In Visual Studio gehen Sie zum Menü "Tools", dann "Options" > "NuGet Package Manager" > "Package Sources". Fügen Sie eine neue Quelle hinzu, die zu dem Ordner zeigt, in dem Sie die .nupkg-Datei heruntergeladen haben. Verwenden Sie schließlich die Paket-Manager-Benutzeroberfläche oder die Konsole in Visual Studio, um das Paket aus Ihrer lokalen Quelle zu installieren.

5. Installieren der Report.NET-Bibliothek

Öffnen Sie Ihren Webbrowser und gehen Sie zum Report.NET GitHub-Repository unter https://github.com/ritchiecarroll/Report.NET/tree/master. Diese Seite enthält die neueste Version der Report.NET-Bibliothek zusammen mit ihrem Quellcode.

5.1 Die Bibliothek herunterladen

Suchen Sie auf der Repository-Seite die Schaltfläche "Code" und klicken Sie darauf. Im Dropdown-Menü wählen Sie "ZIP herunterladen", um das gesamte Repository als ZIP-Datei herunterzuladen. Speichern Sie diese Datei an einem praktischen Ort auf Ihrem Computer und extrahieren Sie deren Inhalte.

5.2 Fügen Sie Report.NET zu Ihrem Projekt hinzu

Nach dem Extrahieren der ZIP-Datei finden Sie den Quellcode der Report.NET-Bibliothek unter den extrahierten Dateien. Um Report.NET in Ihrem Visual Studio-Projekt zu verwenden, gehen Sie folgendermaßen vor:

  1. Öffnen Sie Ihr Projekt: Starten Sie Visual Studio und öffnen Sie das Projekt, zu dem Sie Report.NET hinzufügen möchten.
  2. Bibliothek manuell hinzufügen: Es gibt ein paar Möglichkeiten, die Bibliothek in Ihr Projekt zu integrieren:
    • Als kompilierte Assembly: Wenn das GitHub-Repository eine kompilierte DLL-Datei enthält, können Sie einfach einen Verweis auf diese DLL in Ihr Projekt hinzufügen. Klicken Sie mit der rechten Maustaste auf "Verweise" im Lösungsexplorer Ihres Projekts, wählen Sie "Verweis hinzufügen..." und durchsuchen Sie dann die DLL-Datei.
    • Durch Hinzufügen von Quelldateien: Wenn Sie den Quellcode direkt einfügen möchten oder wenn keine kompilierte DLL bereitgestellt wird, können Sie die Quelldateien zu Ihrem Projekt hinzufügen. Klicken Sie mit der rechten Maustaste auf Ihr Projekt im Lösungsexplorer, wählen Sie "Hinzufügen" > "Vorhandenes Element..." und navigieren Sie dann zu den Report.NET-Quelldateien, die Sie aus der ZIP extrahiert haben.
  3. Sicherstellen der Kompatibilität: Stellen Sie sicher, dass Ihr Projekt eine mit Report.NET kompatible .NET-Framework-Version anstrebt.

6. erweiterte Funktionen von IronPDF gegenüber Report.NET C

6.1 Erweiterte Funktionen von IronPDF C#

IronPDF verfügt über eine Reihe erweiterter Funktionen, die darauf ausgelegt sind, ein breites Spektrum an PDF-bezogenen Aufgaben mühelos zu bewältigen.

6.1.1 HTML zu PDF Rendering

IronPDF kann HTML-Inhalte, einschließlich CSS und JavaScript, direkt in ein PDF-Dokument rendern. Das bedeutet, dass Webseiten oder HTML-Templates in PDFs umgewandelt werden können, die genauso aussehen wie im Browser.

6.1.1.1 HTML-String in PDF

IronPDF ermöglicht die direkte Konvertierung von HTML-Strings in PDF. Das bedeutet, dass Entwickler HTML-Code, der als String-Variable gespeichert ist, verwenden können, um ihn mit IronPDF in eine PDF-Datei zu rendern. Diese Funktion ist besonders nützlich, wenn der HTML-Inhalt dynamisch generiert oder von der Anwendung vor der Umwandlung geändert wurde.

using IronPdf;
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
PDF.SaveAs("HtmlStringToPdf.pdf");
using IronPdf;
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
PDF.SaveAs("HtmlStringToPdf.pdf");
Imports IronPdf
Private Renderer = New IronPdf.HtmlToPdf()
Private PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
PDF.SaveAs("HtmlStringToPdf.pdf")
$vbLabelText   $csharpLabel

6.1.1.2 HTML-Datei zu PDF

Ebenso kann IronPDF bestehende HTML-Dateien in PDF-Dokumente umwandeln. Dies erfolgt durch das Einlesen der HTML-Datei aus dem Dateisystem und die Verwendung von IronPDF zur Erstellung eines PDF-Dokuments mit gleichem Format und Struktur.

using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHTMLFileAsPdf("invoice.html");
PDF.SaveAs("HtmlFileToPdf.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHTMLFileAsPdf("invoice.html");
PDF.SaveAs("HtmlFileToPdf.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Private PDF = Renderer.RenderHTMLFileAsPdf("invoice.html")
PDF.SaveAs("HtmlFileToPdf.pdf")
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 6 - HTML-Datei zu PDF-Ausgabe mit IronPDF

6.1.1.3 URL zu PDF

IronPDF ist auch in der Lage, ein PDF aus einer Live-URL zu rendern. Dies ermöglicht es Entwicklern, eine Webadresse einzugeben, und IronPDF ruft den HTML-Inhalt von der URL ab und rendert ihn als PDF.

using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("http://ironpdf.com");
PDF.SaveAs("UrlToPdf.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("http://ironpdf.com");
PDF.SaveAs("UrlToPdf.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Private PDF = Renderer.RenderUrlAsPdf("http://ironpdf.com")
PDF.SaveAs("UrlToPdf.pdf")
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 7 - URL zu PDF-Konvertierungsausgabe mit IronPDF

6.1.2 Bearbeiten von PDFs

Mit IronPDF können Sie bestehende PDF-Dokumente bearbeiten. Dies umfasst das Hinzufügen von Text, Bildern und Seiten oder das Entfernen von Seiten aus dem Dokument. Sie können auch Text im PDF-Dokument suchen und ersetzen.

using IronPdf;
var document = PdfDocument.FromFile("original_document.pdf");
const int targetPageIndex = 1;
const string oldString = "Hello, World!";
const string newString = "Greetings, Universe!";
document.ReplaceTextOnPage(targetPageIndex, oldString, newString);
document.SaveAs("modified_document.pdf");
using IronPdf;
var document = PdfDocument.FromFile("original_document.pdf");
const int targetPageIndex = 1;
const string oldString = "Hello, World!";
const string newString = "Greetings, Universe!";
document.ReplaceTextOnPage(targetPageIndex, oldString, newString);
document.SaveAs("modified_document.pdf");
Imports IronPdf
Private document = PdfDocument.FromFile("original_document.pdf")
Private Const targetPageIndex As Integer = 1
Private Const oldString As String = "Hello, World!"
Private Const newString As String = "Greetings, Universe!"
document.ReplaceTextOnPage(targetPageIndex, oldString, newString)
document.SaveAs("modified_document.pdf")
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 8 - Ausgabe: Vorhandenes PDF mit IronPDF bearbeiten

6.1.3 Text und Bilder extrahieren

Diese Bibliothek kann Text und Bilder aus PDF-Dateien extrahieren, ähnlich wie Crystal Reports, die Sie zum Indizieren, Suchen oder Wiederverwenden von Inhalten verwenden können.

6.1.4 PDF-Formulare generieren

IronPDF unterstützt die Erstellung von PDF-Formularen. Entwickler können programmatisch Formulare innerhalb eines PDF erstellen, und Benutzer können sie ausfüllen.

using IronPdf;
using System;
const string alternativeHtmlContent = @"
    <html>
        <body>
            <h2>Alternative PDF Form</h2>
            <form>
              Name: <br> 
              Age: <br> 
              <br>
              <p>Select country:</p>
              <select name='country'>
                <option value='USA'>USA</option>
                <option value='UK'>UK</option>
                <option value='Canada'>Canada</option>
              </select>
              <br>
              <p>Select interests:</p>
              <label for='interest1'> Interest 1</label><br>
              <label for='interest2'> Interest 2</label><br>
            </form>
        </body>
    </html>";
var alternativePdfRenderer = new ChromePdfRenderer();
alternativePdfRenderer.RenderingOptions.CreatePdfFormsFromHtml = true;
alternativePdfRenderer.RenderHtmlAsPdf(alternativeHtmlContent).SaveAs("AlternativeForm.pdf");
using IronPdf;
using System;
const string alternativeHtmlContent = @"
    <html>
        <body>
            <h2>Alternative PDF Form</h2>
            <form>
              Name: <br> 
              Age: <br> 
              <br>
              <p>Select country:</p>
              <select name='country'>
                <option value='USA'>USA</option>
                <option value='UK'>UK</option>
                <option value='Canada'>Canada</option>
              </select>
              <br>
              <p>Select interests:</p>
              <label for='interest1'> Interest 1</label><br>
              <label for='interest2'> Interest 2</label><br>
            </form>
        </body>
    </html>";
var alternativePdfRenderer = new ChromePdfRenderer();
alternativePdfRenderer.RenderingOptions.CreatePdfFormsFromHtml = true;
alternativePdfRenderer.RenderHtmlAsPdf(alternativeHtmlContent).SaveAs("AlternativeForm.pdf");
Imports IronPdf
Imports System
Private Const alternativeHtmlContent As String = "
    <html>
        <body>
            <h2>Alternative PDF Form</h2>
            <form>
              Name: <br> 
              Age: <br> 
              <br>
              <p>Select country:</p>
              <select name='country'>
                <option value='USA'>USA</option>
                <option value='UK'>UK</option>
                <option value='Canada'>Canada</option>
              </select>
              <br>
              <p>Select interests:</p>
              <label for='interest1'> Interest 1</label><br>
              <label for='interest2'> Interest 2</label><br>
            </form>
        </body>
    </html>"
Private alternativePdfRenderer = New ChromePdfRenderer()
alternativePdfRenderer.RenderingOptions.CreatePdfFormsFromHtml = True
alternativePdfRenderer.RenderHtmlAsPdf(alternativeHtmlContent).SaveAs("AlternativeForm.pdf")
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 9 - Ausgabe-PDF: PDF-Formulare mit IronPDF erstellen

6.1.5 Zusammenführen von PDF-Dokumenten

Sie können mehrere PDF-Dateien zu einem einzigen Dokument kombinieren. Diese Funktion ist praktisch zum Konsolidieren von Berichten oder zum Kombinieren verschiedener Dokumentabschnitte.

using IronPdf;
var firstHtmlContent = @"<h1>Document A</h1>
        <p>This is the first document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document A</p>";
var secondHtmlContent = @"<h1>Document B</h1>
        <p>This is the second document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document B</p>";
var pdfRenderer = new ChromePdfRenderer();
var pdfDocA = pdfRenderer.RenderHtmlAsPdf(firstHtmlContent);
var pdfDocB = pdfRenderer.RenderHtmlAsPdf(secondHtmlContent);
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);
mergedPdf.SaveAs("MergedDocuments.pdf");
using IronPdf;
var firstHtmlContent = @"<h1>Document A</h1>
        <p>This is the first document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document A</p>";
var secondHtmlContent = @"<h1>Document B</h1>
        <p>This is the second document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document B</p>";
var pdfRenderer = new ChromePdfRenderer();
var pdfDocA = pdfRenderer.RenderHtmlAsPdf(firstHtmlContent);
var pdfDocB = pdfRenderer.RenderHtmlAsPdf(secondHtmlContent);
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);
mergedPdf.SaveAs("MergedDocuments.pdf");
Imports IronPdf
Private firstHtmlContent = "<h1>Document A</h1>
        <p>This is the first document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document A</p>"
Private secondHtmlContent = "<h1>Document B</h1>
        <p>This is the second document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document B</p>"
Private pdfRenderer = New ChromePdfRenderer()
Private pdfDocA = pdfRenderer.RenderHtmlAsPdf(firstHtmlContent)
Private pdfDocB = pdfRenderer.RenderHtmlAsPdf(secondHtmlContent)
Private mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB)
mergedPdf.SaveAs("MergedDocuments.pdf")
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 10 - Ausgabe-PDF: Mehrere PDF-Dateien erstellen und in ein PDF zusammenführen.

6.1.6 PDF-Dokumente aufteilen

Umgekehrt kann IronPDF ein einzelnes PDF in mehrere Dokumente aufteilen. Dies könnte erforderlich sein, wenn Sie einzelne Seiten oder Abschnitte verteilen möchten.

6.1.7 Verschlüsseln und Entschlüsseln von PDFs

IronPDF ermöglicht die Verschlüsselung und Entschlüsselung von PDF-Dokumenten, was eine zusätzliche Sicherheitsschicht für sensible Informationen bietet.

using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("protected.pdf", "password");
encryptedPdf.SecuritySettings.RemovePasswordsAndEncryption();
encryptedPdf.SecuritySettings.MakePdfDocumentReadOnly("super-secret-key");
encryptedPdf.Password = "new-password";
encryptedPdf.SaveAs("secured.pdf");
using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("protected.pdf", "password");
encryptedPdf.SecuritySettings.RemovePasswordsAndEncryption();
encryptedPdf.SecuritySettings.MakePdfDocumentReadOnly("super-secret-key");
encryptedPdf.Password = "new-password";
encryptedPdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System
Private encryptedPdf = PdfDocument.FromFile("protected.pdf", "password")
encryptedPdf.SecuritySettings.RemovePasswordsAndEncryption()
encryptedPdf.SecuritySettings.MakePdfDocumentReadOnly("super-secret-key")
encryptedPdf.Password = "new-password"
encryptedPdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

6.1.8 Dokumenteigenschaften und Metadaten festlegen

Mit dieser Bibliothek ist das Festlegen von Dokumenteigenschaften wie Titel, Autor und Metadaten unkompliziert. Dies hilft bei der Dokumentenverwaltung und -organisation.

using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("sample.pdf");
encryptedPdf.MetaData.Author = "Iron Developer";
encryptedPdf.MetaData.Keywords = "Confidential, Private";
encryptedPdf.MetaData.ModifiedDate = DateTime.Now;
encryptedPdf.SaveAs("modified.pdf");
using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("sample.pdf");
encryptedPdf.MetaData.Author = "Iron Developer";
encryptedPdf.MetaData.Keywords = "Confidential, Private";
encryptedPdf.MetaData.ModifiedDate = DateTime.Now;
encryptedPdf.SaveAs("modified.pdf");
Imports IronPdf
Imports System
Private encryptedPdf = PdfDocument.FromFile("sample.pdf")
encryptedPdf.MetaData.Author = "Iron Developer"
encryptedPdf.MetaData.Keywords = "Confidential, Private"
encryptedPdf.MetaData.ModifiedDate = DateTime.Now
encryptedPdf.SaveAs("modified.pdf")
$vbLabelText   $csharpLabel

6.1.9 PDF/A-Konformität

IronPDF kann PDF/A-kompatible Dokumente generieren, die für langfristige Archivierungs- und Aufzeichnungszwecke erforderlich sind.

6.1.10 XML-Berichte mit IronPDF

Die direkte Konvertierung von XML in PDF wird von IronPDF nicht unterstützt, aber ein gangbarer Ansatz besteht darin, XML-Daten zuerst in HTML-Format umzuwandeln. Dies wird durch den Einsatz von XSLT (Extensible Stylesheet Language Transformations) erreicht, einer leistungsstarken XML-Stylesheet-Sprache, die dazu dient, XML-Dokumente in andere Formate wie HTML, Text oder sogar ein neues XML-Dokument umzuwandeln. Angenommen, das ist unsere data.xml-Datei:

<?xml version="1.0" encoding="UTF-8"?>
<Library>
<Book id="1">
<Title>The Great Gatsby</Title>
<Author>F. Scott Fitzgerald</Author>
<Genre>Fiction</Genre>
<Year>1925</Year>
</Book>
<Book id="2">
<Title>To Kill a Mockingbird</Title>
<Author>Harper Lee</Author>
<Genre>Fiction</Genre>
<Year>1960</Year>
</Book>
<Book id="3">
<Title>1984</Title>
<Author>George Orwell</Author>
<Genre>Dystopian</Genre>
<Year>1949</Year>
</Book>
</Library>
<?xml version="1.0" encoding="UTF-8"?>
<Library>
<Book id="1">
<Title>The Great Gatsby</Title>
<Author>F. Scott Fitzgerald</Author>
<Genre>Fiction</Genre>
<Year>1925</Year>
</Book>
<Book id="2">
<Title>To Kill a Mockingbird</Title>
<Author>Harper Lee</Author>
<Genre>Fiction</Genre>
<Year>1960</Year>
</Book>
<Book id="3">
<Title>1984</Title>
<Author>George Orwell</Author>
<Genre>Dystopian</Genre>
<Year>1949</Year>
</Book>
</Library>
XML

Und das ist unsere style.xslt-Datei:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" doctype-system="about:legacy-compat" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <title>Library Catalog</title>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    table { border-collapse: collapse; width: 100%; }
                    th, td { text-align: left; padding: 8px; }
                    tr:nth-child(even) { background-color: #f2f2f2; }
                    th { background-color: #4CAF50; color: white; }
                </style>
            </head>
            <body>
                <h2>Library Catalog</h2>
                <table>
                    <tr>
                        <th>Title</th>
                        <th>Author</th>
                        <th>Genre</th>
                        <th>Year</th>
                    </tr>
                    <xsl:for-each select="Library/Book">
                        <tr>
                            <td><xsl:value-of select="Title"/></td>
                            <td><xsl:value-of select="Author"/></td>
                            <td><xsl:value-of select="Genre"/></td>
                            <td><xsl:value-of select="Year"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" doctype-system="about:legacy-compat" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <title>Library Catalog</title>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    table { border-collapse: collapse; width: 100%; }
                    th, td { text-align: left; padding: 8px; }
                    tr:nth-child(even) { background-color: #f2f2f2; }
                    th { background-color: #4CAF50; color: white; }
                </style>
            </head>
            <body>
                <h2>Library Catalog</h2>
                <table>
                    <tr>
                        <th>Title</th>
                        <th>Author</th>
                        <th>Genre</th>
                        <th>Year</th>
                    </tr>
                    <xsl:for-each select="Library/Book">
                        <tr>
                            <td><xsl:value-of select="Title"/></td>
                            <td><xsl:value-of select="Author"/></td>
                            <td><xsl:value-of select="Genre"/></td>
                            <td><xsl:value-of select="Year"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
XML

Hier ist der Code-Ausschnitt, wie wir diesen Ansatz umsetzen können:

using System;
using System.Xml.Xsl;
using System.Xml;
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("style.xslt");
XmlReader reader = XmlReader.Create("data.xml");
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
using (XmlWriter writer = XmlWriter.Create("output.html", settings))
{
    transform.Transform(reader, writer);
}
License.LicenseKey = "Liecense-Key";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("output.html");
pdf.SaveAs("Report.pdf");
using System;
using System.Xml.Xsl;
using System.Xml;
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("style.xslt");
XmlReader reader = XmlReader.Create("data.xml");
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
using (XmlWriter writer = XmlWriter.Create("output.html", settings))
{
    transform.Transform(reader, writer);
}
License.LicenseKey = "Liecense-Key";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("output.html");
pdf.SaveAs("Report.pdf");
Imports System
Imports System.Xml.Xsl
Imports System.Xml
Private transform As New XslCompiledTransform()
transform.Load("style.xslt")
Dim reader As XmlReader = XmlReader.Create("data.xml")
Dim settings As New XmlWriterSettings With {
	.Indent = True,
	.OmitXmlDeclaration = True
}
Using writer As XmlWriter = XmlWriter.Create("output.html", settings)
	transform.Transform(reader, writer)
End Using
License.LicenseKey = "Liecense-Key"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("output.html")
pdf.SaveAs("Report.pdf")
$vbLabelText   $csharpLabel
  1. Sie beginnen mit einem XSLT-Stylesheet (style.xslt), das vorgibt, wie die XML-Daten als HTML strukturiert werden sollen. Die XslCompiledTransform-Klasse in .NET wird verwendet, um Ihre XSLT-Datei zu laden.
  2. Verwenden Sie XmlReader, um Ihre XML-Daten (data.xml) zu laden. XmlReader ist effizient für diesen Zweck, da es eine vorwärtsgerichtete, schreibgeschützte Ansicht der XML-Daten bereitstellt.
  3. Das transformierte HTML wird mit XmlWriter in eine Datei (output.html) geschrieben, die so konfiguriert ist, dass sie eingerücktes HTML für bessere Lesbarkeit produziert und die XML-Deklaration weglässt, die im HTML-Ausgang nicht benötigt wird.
  4. Mit der HTML-Datei bereit, wird IronPDF's ChromePdfRenderer verwendet, um das HTML-Dokument in ein PDF umzuwandeln. Dieser Renderer imitiert eine hochwertige Rendering-Engine und stellt sicher, dass das generierte PDF den HTML-Inhalt genau wiedergibt.
  5. Schließlich wird das PDF-Dokument im Dateisystem gespeichert (Report.pdf). Dieser Schritt schließt den Konvertierungsprozess ab und ergibt ein PDF-Dokument, das aus den ursprünglichen XML-Daten abgeleitet ist.

So generieren wir Berichte mit XML und IronPDF. Die Ausgabe-PDF-Datei, die wir generieren:

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 11 - Ausgabe-PDF-Datei aus XML-Berichten mit IronPDF und XSLT

Wir können auch interaktive SAP-Berichte programmatisch erstellen und dann mit IronPDF umwandeln. Für detailliertere Anleitungen folgen Sie diesem Leitfaden zu C# Berichtserstellung.

6.2 Erweiterte Funktionen von Report.NET

Report.NET bietet eine Reihe erweiterter Funktionen, die eine umfassende PDF-Erzeugung und -Anpassung ermöglichen. Die in dem Bild aufgeführten Funktionen spiegeln einige dieser erweiterten Fähigkeiten wider. Lassen Sie uns jeden im Detail betrachten.

6.2.1 Hinzufügen von Schriftarten

Diese Funktion ermöglicht die Verwendung verschiedener Schriftstile und -größen innerhalb eines PDF-Dokuments. Entwickler können damit das Aussehen verschiedener Schriften testen und sicherstellen, dass der Text korrekt und gemäß den Designvorgaben angezeigt wird.

using Root.Reports;
using System;
using System.Drawing;
namespace ReportSamples {
  public class Test : Report {
    private readonly FontDef fontDef;
    private readonly FontProp fontProp_Title;
    private readonly FontProp fontProp_Label;
    public Test() {
      fontDef = FontDef.FontDefFromName(this, FontDef.StandardFont.Helvetica);
      fontProp_Title = new FontPropMM(fontDef, 6) { Bold = true };
      fontProp_Label = new FontPropMM(fontDef, 4);
    }
    protected override void Create() {
      FontTest();
    }
    private void FontTest() {
      FontProp fp_Title = new FontPropMM(fontDef, 12) { Bold = true };
      FontProp fp = new FontPropMM(fontDef, 6);
      FontProp fp_Small = new FontPropMM(fontDef, 1.4);
      FontProp fp_XSmall = new FontPropMM(fontDef, 0.8);
      Page page_Cur = new Page(this);
      page_Cur.AddCB_MM(30, new RepString(fontProp_Title, "Font Test"));
      Double rX = 300;
      Double rY = 40;
      for (Int32 i = 32; i < 127; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      for (Int32 i = 161; i < 256; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      PrintCharacter('�', fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
    }
    private void PrintCharacter(Int32 iChar, FontProp fp, FontProp fp_Small, FontProp fp_XSmall, Double rX, Double rY, Page page_Cur) {
      if (rX > 185) {
        rY += fp.rLineFeedMM;
        rX = 22;
      }
      if (rY > 280) {
        new Page(this);
        rY = 40;
      }
      Char ch = (Char)iChar;
      String s = ch.ToString();
      page_Cur.AddMM(rX + 2, rY, new RepString(fp, s));
      rX += 15;
    }
  }
}
using Root.Reports;
using System;
using System.Drawing;
namespace ReportSamples {
  public class Test : Report {
    private readonly FontDef fontDef;
    private readonly FontProp fontProp_Title;
    private readonly FontProp fontProp_Label;
    public Test() {
      fontDef = FontDef.FontDefFromName(this, FontDef.StandardFont.Helvetica);
      fontProp_Title = new FontPropMM(fontDef, 6) { Bold = true };
      fontProp_Label = new FontPropMM(fontDef, 4);
    }
    protected override void Create() {
      FontTest();
    }
    private void FontTest() {
      FontProp fp_Title = new FontPropMM(fontDef, 12) { Bold = true };
      FontProp fp = new FontPropMM(fontDef, 6);
      FontProp fp_Small = new FontPropMM(fontDef, 1.4);
      FontProp fp_XSmall = new FontPropMM(fontDef, 0.8);
      Page page_Cur = new Page(this);
      page_Cur.AddCB_MM(30, new RepString(fontProp_Title, "Font Test"));
      Double rX = 300;
      Double rY = 40;
      for (Int32 i = 32; i < 127; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      for (Int32 i = 161; i < 256; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      PrintCharacter('�', fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
    }
    private void PrintCharacter(Int32 iChar, FontProp fp, FontProp fp_Small, FontProp fp_XSmall, Double rX, Double rY, Page page_Cur) {
      if (rX > 185) {
        rY += fp.rLineFeedMM;
        rX = 22;
      }
      if (rY > 280) {
        new Page(this);
        rY = 40;
      }
      Char ch = (Char)iChar;
      String s = ch.ToString();
      page_Cur.AddMM(rX + 2, rY, new RepString(fp, s));
      rX += 15;
    }
  }
}
Imports Root.Reports
Imports System
Imports System.Drawing
Namespace ReportSamples
  Public Class Test
	  Inherits Report

	Private ReadOnly fontDef As FontDef
	Private ReadOnly fontProp_Title As FontProp
	Private ReadOnly fontProp_Label As FontProp
	Public Sub New()
	  fontDef = FontDef.FontDefFromName(Me, FontDef.StandardFont.Helvetica)
	  fontProp_Title = New FontPropMM(fontDef, 6) With {.Bold = True}
	  fontProp_Label = New FontPropMM(fontDef, 4)
	End Sub
	Protected Overrides Sub Create()
	  FontTest()
	End Sub
	Private Sub FontTest()
	  Dim fp_Title As FontProp = New FontPropMM(fontDef, 12) With {.Bold = True}
	  Dim fp As FontProp = New FontPropMM(fontDef, 6)
	  Dim fp_Small As FontProp = New FontPropMM(fontDef, 1.4)
	  Dim fp_XSmall As FontProp = New FontPropMM(fontDef, 0.8)
	  Dim page_Cur As New Page(Me)
	  page_Cur.AddCB_MM(30, New RepString(fontProp_Title, "Font Test"))
	  Dim rX As Double = 300
	  Dim rY As Double = 40
	  For i As Int32 = 32 To 126
		PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur)
	  Next i
	  For i As Int32 = 161 To 255
		PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur)
	  Next i
	  PrintCharacter(AscW(" "c), fp, fp_Small, fp_XSmall, rX, rY, page_Cur)
	End Sub
	Private Sub PrintCharacter(ByVal iChar As Int32, ByVal fp As FontProp, ByVal fp_Small As FontProp, ByVal fp_XSmall As FontProp, ByVal rX As Double, ByVal rY As Double, ByVal page_Cur As Page)
	  If rX > 185 Then
		rY += fp.rLineFeedMM
		rX = 22
	  End If
	  If rY > 280 Then
		Dim tempVar As New Page(Me)
		rY = 40
	  End If
	  Dim ch As Char = ChrW(iChar)
	  Dim s As String = ch.ToString()
	  page_Cur.AddMM(rX + 2, rY, New RepString(fp, s))
	  rX += 15
	End Sub
  End Class
End Namespace
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 12 - Hinzufügen verschiedener Schriftarten und -größen zu einem PDF-Dokument mit Report.NET

6.2.2 Bildeinbettung

Mit der Funktion "Bildbeispiel" können Entwickler Bilder in PDF-Dokumente einfügen. Dies beinhaltet die Kontrolle der Größe und Positionierung der Bilder sowie möglicherweise die Anwendung von Transformationen oder Effekten auf sie.

using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ImageSample : Report {
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp_Title = new FontPropMM(fd, 15) { Bold = true };
      FontProp fp_SubTitle = new FontPropMM(fd, 4) { Bold = true };
      PenProp pp = new PenProp(this, 0.2, Color.FromArgb(235, 235, 235));
      PenProp pp_Black = new PenProp(this, 0.2, Color.Black);
      BrushProp bp = new BrushProp(this, Color.LightGray);
      new Page(this);
      page_Cur.AddCB_MM(40, new RepString(fp_Title, "Image Sample"));
      System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream("ReportSamples.Image.jpg");
      page_Cur.AddMM(20, 90, new RepImageMM(stream, 40, Double.NaN));
      page_Cur.AddMM(20, 95, new RepString(fp_SubTitle, "W = 40mm, H = auto."));
      page_Cur.AddMM(67, 90, new RepImageMM(stream, 40, 20));
      page_Cur.AddMM(67, 95, new RepString(fp_SubTitle, "W = 40mm, H = 20mm"));
      page_Cur.AddMM(114, 90, new RepImageMM(stream, Double.NaN, 30));
      page_Cur.AddMM(114, 95, new RepString(fp_SubTitle, "W = auto., H = 30mm"));
      page_Cur.AddMM(161, 90, new RepImageMM(stream, 30, 30));
      page_Cur.AddMM(161, 95, new RepString(fp_SubTitle, "W = 30mm, H = 30mm"));
    }
  }
}
using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ImageSample : Report {
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp_Title = new FontPropMM(fd, 15) { Bold = true };
      FontProp fp_SubTitle = new FontPropMM(fd, 4) { Bold = true };
      PenProp pp = new PenProp(this, 0.2, Color.FromArgb(235, 235, 235));
      PenProp pp_Black = new PenProp(this, 0.2, Color.Black);
      BrushProp bp = new BrushProp(this, Color.LightGray);
      new Page(this);
      page_Cur.AddCB_MM(40, new RepString(fp_Title, "Image Sample"));
      System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream("ReportSamples.Image.jpg");
      page_Cur.AddMM(20, 90, new RepImageMM(stream, 40, Double.NaN));
      page_Cur.AddMM(20, 95, new RepString(fp_SubTitle, "W = 40mm, H = auto."));
      page_Cur.AddMM(67, 90, new RepImageMM(stream, 40, 20));
      page_Cur.AddMM(67, 95, new RepString(fp_SubTitle, "W = 40mm, H = 20mm"));
      page_Cur.AddMM(114, 90, new RepImageMM(stream, Double.NaN, 30));
      page_Cur.AddMM(114, 95, new RepString(fp_SubTitle, "W = auto., H = 30mm"));
      page_Cur.AddMM(161, 90, new RepImageMM(stream, 30, 30));
      page_Cur.AddMM(161, 95, new RepString(fp_SubTitle, "W = 30mm, H = 30mm"));
    }
  }
}
Imports Root.Reports
Imports System.Drawing
Namespace ReportSamples
  Public Class ImageSample
	  Inherits Report

	Protected Overrides Sub Create()
	  Dim fd As New FontDef(Me, FontDef.StandardFont.Helvetica)
	  Dim fp_Title As FontProp = New FontPropMM(fd, 15) With {.Bold = True}
	  Dim fp_SubTitle As FontProp = New FontPropMM(fd, 4) With {.Bold = True}
	  Dim pp As New PenProp(Me, 0.2, Color.FromArgb(235, 235, 235))
	  Dim pp_Black As New PenProp(Me, 0.2, Color.Black)
	  Dim bp As New BrushProp(Me, Color.LightGray)
	  Dim tempVar As New Page(Me)
	  page_Cur.AddCB_MM(40, New RepString(fp_Title, "Image Sample"))
	  Dim stream As System.IO.Stream = Me.GetType().Assembly.GetManifestResourceStream("Image.jpg")
	  page_Cur.AddMM(20, 90, New RepImageMM(stream, 40, Double.NaN))
	  page_Cur.AddMM(20, 95, New RepString(fp_SubTitle, "W = 40mm, H = auto."))
	  page_Cur.AddMM(67, 90, New RepImageMM(stream, 40, 20))
	  page_Cur.AddMM(67, 95, New RepString(fp_SubTitle, "W = 40mm, H = 20mm"))
	  page_Cur.AddMM(114, 90, New RepImageMM(stream, Double.NaN, 30))
	  page_Cur.AddMM(114, 95, New RepString(fp_SubTitle, "W = auto., H = 30mm"))
	  page_Cur.AddMM(161, 90, New RepImageMM(stream, 30, 30))
	  page_Cur.AddMM(161, 95, New RepString(fp_SubTitle, "W = 30mm, H = 30mm"))
	End Sub
  End Class
End Namespace
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 13 - Ausgabe-PDF: Bilder in PDF-Dokumente einfügen mit Report.NET

6.2.3 Listenlayout-Manager

Der Listenlayout-Manager bietet eine Möglichkeit, Listen zu einem PDF-Dokument hinzuzufügen. Dies ist nützlich zur Erstellung von geordneten oder ungeordneten Listen, zur Anpassung der Listeneinrückung, der Aufzählungszeichenstile, und zur Verwaltung des gesamten Layouts der Listenelemente innerhalb des Dokuments.

using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ListLayoutManagerSample : Report {
    private Double rMarginLeft = 20;  // millimeters
    private Double rWidth = 175;  // millimeters
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 1.9);
      Double rY = 40;  // vertical position in millimeters
      new Page(this);
      FontProp fp_Title = new FontPropMM(fd, 8);
      page_Cur.AddCB_MM(rY, new RepString(fp_Title, "List Layout Manager Sample"));
      rY += 18;
      ListLayoutManager llm = null;
      using (llm = new ListLayoutManager(this)) {
        PenProp pp_BorderLine = new PenPropMM(this, 0.4, Color.Blue);
        PenProp pp_GridLine = new PenPropMM(this, 0.1, Color.Blue);
        // Configuration for columns
        TlmColumn col_Number = new TlmColumnMM(llm, 10);
        col_Number.tlmCellDef_Default.rAlignH = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.rAlignV = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine;
        TlmColumn col_Text = new TlmColumnMM(llm, 100);
        col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;
        TlmColumn col_Author = new TlmColumnMM(llm, rWidth - llm.rWidthMM);
        col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine;
        col_Author.tlmCellDef_Default.brushProp_Back = new BrushProp(this, Color.FromArgb(255, 210, 210));
        llm.container_CreateMM(page_Cur, rMarginLeft, rY);  // immediately creates a container
        // Adding rows and content
        // ...
        // Rows and content omitted for brevity
        // ...
      }
      rY += llm.rCurY_MM + 1.5;
      fp.rSizeMM = 1.5;
      page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, new RepString(fp, "End of list"));
    }
  }
}
using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ListLayoutManagerSample : Report {
    private Double rMarginLeft = 20;  // millimeters
    private Double rWidth = 175;  // millimeters
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 1.9);
      Double rY = 40;  // vertical position in millimeters
      new Page(this);
      FontProp fp_Title = new FontPropMM(fd, 8);
      page_Cur.AddCB_MM(rY, new RepString(fp_Title, "List Layout Manager Sample"));
      rY += 18;
      ListLayoutManager llm = null;
      using (llm = new ListLayoutManager(this)) {
        PenProp pp_BorderLine = new PenPropMM(this, 0.4, Color.Blue);
        PenProp pp_GridLine = new PenPropMM(this, 0.1, Color.Blue);
        // Configuration for columns
        TlmColumn col_Number = new TlmColumnMM(llm, 10);
        col_Number.tlmCellDef_Default.rAlignH = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.rAlignV = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine;
        TlmColumn col_Text = new TlmColumnMM(llm, 100);
        col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;
        TlmColumn col_Author = new TlmColumnMM(llm, rWidth - llm.rWidthMM);
        col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine;
        col_Author.tlmCellDef_Default.brushProp_Back = new BrushProp(this, Color.FromArgb(255, 210, 210));
        llm.container_CreateMM(page_Cur, rMarginLeft, rY);  // immediately creates a container
        // Adding rows and content
        // ...
        // Rows and content omitted for brevity
        // ...
      }
      rY += llm.rCurY_MM + 1.5;
      fp.rSizeMM = 1.5;
      page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, new RepString(fp, "End of list"));
    }
  }
}
Imports Root.Reports
Imports System.Drawing
Namespace ReportSamples
  Public Class ListLayoutManagerSample
	  Inherits Report

	Private rMarginLeft As Double = 20 ' millimeters
	Private rWidth As Double = 175 ' millimeters
	Protected Overrides Sub Create()
	  Dim fd As New FontDef(Me, FontDef.StandardFont.Helvetica)
	  Dim fp As FontProp = New FontPropMM(fd, 1.9)
	  Dim rY As Double = 40 ' vertical position in millimeters
	  Dim tempVar As New Page(Me)
	  Dim fp_Title As FontProp = New FontPropMM(fd, 8)
	  page_Cur.AddCB_MM(rY, New RepString(fp_Title, "List Layout Manager Sample"))
	  rY += 18
	  Dim llm As ListLayoutManager = Nothing
	  llm = New ListLayoutManager(Me)
	  Using llm
		Dim pp_BorderLine As PenProp = New PenPropMM(Me, 0.4, Color.Blue)
		Dim pp_GridLine As PenProp = New PenPropMM(Me, 0.1, Color.Blue)
		' Configuration for columns
		Dim col_Number As TlmColumn = New TlmColumnMM(llm, 10)
		col_Number.tlmCellDef_Default.rAlignH = RepObj.rAlignCenter
		col_Number.tlmCellDef_Default.rAlignV = RepObj.rAlignCenter
		col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine
		Dim col_Text As TlmColumn = New TlmColumnMM(llm, 100)
		col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine
		Dim col_Author As TlmColumn = New TlmColumnMM(llm, rWidth - llm.rWidthMM)
		col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine
		col_Author.tlmCellDef_Default.brushProp_Back = New BrushProp(Me, Color.FromArgb(255, 210, 210))
		llm.container_CreateMM(page_Cur, rMarginLeft, rY) ' immediately creates a container
		' Adding rows and content
		' ...
		' Rows and content omitted for brevity
		' ...
	  End Using
	  rY += llm.rCurY_MM + 1.5
	  fp.rSizeMM = 1.5
	  page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, New RepString(fp, "End of list"))
	End Sub
  End Class
End Namespace
$vbLabelText   $csharpLabel

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 14 - Ausgabe-PDF: Listen zu PDF-Dokumenten mit Report.NET hinzufügen

6.2.4 PDF-Eigenschaften

Dies bezieht sich auf die Möglichkeit, verschiedene Eigenschaften des PDF-Dokuments selbst festzulegen und zu ändern, wie Metadaten (Autor, Titel, Thema), Anzeigeeinstellungen und Sicherheitseinstellungen wie Verschlüsselung und Zugriffsberechtigungen.

using Root.Reports;
using System;
namespace ReportSamples {
  public class PdfPropertiesSample : Report {
    public PdfPropertiesSample() {
      PdfFormatter pf = (PdfFormatter)formatter;
      pf.sTitle = "PDF Sample";
      pf.sAuthor = "Otto Mayer, mot@root.ch";
      pf.sSubject = "Sample of some PDF features";
      pf.sKeywords = "Sample PDF RSF";
      pf.sCreator = "RSF Sample Application";
      pf.dt_CreationDate = new DateTime(2002, 8, 15, 0, 0, 0, 0);
      pf.pageLayout = PageLayout.TwoColumnLeft;
      pf.bHideToolBar = true;
      pf.bHideMenubar = false;
      pf.bHideWindowUI = true;
      pf.bFitWindow = true;
      pf.bCenterWindow = true;
      pf.bDisplayDocTitle = true;
    }
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 4);
      FontProp fp_Title = new FontPropMM(fd, 11);
      fp_Title.bBold = true;
      Page page = new Page(this);
      page.AddCB_MM(40, new RepString(fp_Title, "PDF Properties Sample"));
      fp_Title.rSizeMM = 8;
      page.AddCB_MM(100, new RepString(fp_Title, "First Page"));
      page.AddCB_MM(120, new RepString(fp, "Choose <Document Properties, Summary> from the"));
      page.AddCB_MM(126, new RepString(fp, "File menu to display the document properties"));
      page = new Page(this);
      page.AddCB_MM(100, new RepString(fp_Title, "Second Page"));
    }
  }
}
using Root.Reports;
using System;
namespace ReportSamples {
  public class PdfPropertiesSample : Report {
    public PdfPropertiesSample() {
      PdfFormatter pf = (PdfFormatter)formatter;
      pf.sTitle = "PDF Sample";
      pf.sAuthor = "Otto Mayer, mot@root.ch";
      pf.sSubject = "Sample of some PDF features";
      pf.sKeywords = "Sample PDF RSF";
      pf.sCreator = "RSF Sample Application";
      pf.dt_CreationDate = new DateTime(2002, 8, 15, 0, 0, 0, 0);
      pf.pageLayout = PageLayout.TwoColumnLeft;
      pf.bHideToolBar = true;
      pf.bHideMenubar = false;
      pf.bHideWindowUI = true;
      pf.bFitWindow = true;
      pf.bCenterWindow = true;
      pf.bDisplayDocTitle = true;
    }
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 4);
      FontProp fp_Title = new FontPropMM(fd, 11);
      fp_Title.bBold = true;
      Page page = new Page(this);
      page.AddCB_MM(40, new RepString(fp_Title, "PDF Properties Sample"));
      fp_Title.rSizeMM = 8;
      page.AddCB_MM(100, new RepString(fp_Title, "First Page"));
      page.AddCB_MM(120, new RepString(fp, "Choose <Document Properties, Summary> from the"));
      page.AddCB_MM(126, new RepString(fp, "File menu to display the document properties"));
      page = new Page(this);
      page.AddCB_MM(100, new RepString(fp_Title, "Second Page"));
    }
  }
}
Imports Root.Reports
Imports System
Namespace ReportSamples
  Public Class PdfPropertiesSample
	  Inherits Report

	Public Sub New()
	  Dim pf As PdfFormatter = CType(formatter, PdfFormatter)
	  pf.sTitle = "PDF Sample"
	  pf.sAuthor = "Otto Mayer, mot@root.ch"
	  pf.sSubject = "Sample of some PDF features"
	  pf.sKeywords = "Sample PDF RSF"
	  pf.sCreator = "RSF Sample Application"
	  pf.dt_CreationDate = New DateTime(2002, 8, 15, 0, 0, 0, 0)
	  pf.pageLayout = PageLayout.TwoColumnLeft
	  pf.bHideToolBar = True
	  pf.bHideMenubar = False
	  pf.bHideWindowUI = True
	  pf.bFitWindow = True
	  pf.bCenterWindow = True
	  pf.bDisplayDocTitle = True
	End Sub
	Protected Overrides Sub Create()
	  Dim fd As New FontDef(Me, FontDef.StandardFont.Helvetica)
	  Dim fp As FontProp = New FontPropMM(fd, 4)
	  Dim fp_Title As FontProp = New FontPropMM(fd, 11)
	  fp_Title.bBold = True
	  Dim page As New Page(Me)
	  page.AddCB_MM(40, New RepString(fp_Title, "PDF Properties Sample"))
	  fp_Title.rSizeMM = 8
	  page.AddCB_MM(100, New RepString(fp_Title, "First Page"))
	  page.AddCB_MM(120, New RepString(fp, "Choose <Document Properties, Summary> from the"))
	  page.AddCB_MM(126, New RepString(fp, "File menu to display the document properties"))
	  page = New Page(Me)
	  page.AddCB_MM(100, New RepString(fp_Title, "Second Page"))
	End Sub
  End Class
End Namespace
$vbLabelText   $csharpLabel

6.2.5 PDF aus Text

Die Funktion "PDF aus Text" zeigt die Fähigkeiten der Bibliothek bei der Hinzufügung und Anpassung von Textinhalten in einem PDF. Dies umfasst das Festlegen der Textausrichtung, des Zeilenabstands, der Farbe und das Anwenden von Texteffekten wie fett oder kursiv.

7. Dokumentation und Unterstützung

7.1 IronPDF

IronPDF ist bekannt für seine umfassende und detaillierte Dokumentation. IronPDF bietet einen gut organisierten Dokumentationsbereich, der Setup-Anweisungen, Tutorials und API-Referenzen enthält. Die Guides sind so strukturiert, dass sowohl Anfänger als auch erfahrene Entwickler die benötigten Informationen schnell finden können. Für community-gesteuerte Unterstützung können sich Entwickler an Foren und Community-Diskussionen wenden. Hier können sie Fragen stellen, Erfahrungen teilen und Antworten von anderen Nutzern finden.

IronPDF bietet auch professionellen Support über ein Ticketingsystem an, bei dem Ingenieure direkt Hilfe vom IronPDF-Team erhalten können. Dieser Service könnte Teil des bezahlten Lizenzierungsmodells sein, das mehr direkte und sofortige Unterstützung bietet.

7.2 Report.NET

Report.NET, als Open-Source-Bibliothek, hat einen anderen Ansatz für Dokumentation und Unterstützung. Die Dokumentation ist vielleicht nicht so umfassend wie bei kommerziellen Bibliotheken, aber sie reicht aus, um anzufangen und gängige Aufgaben zu bewältigen. Die Dokumentation der Bibliothek befindet sich im GitHub-Repository oder als Inline-Kommentare im Quellcode. Es ist tendenziell technischer und kann einige Nachforschungen erfordern, um die benötigten Informationen zu finden.

Da Report.NET eine kostenlose und Open-Source-Bibliothek ist, bietet sie keinen formalen professionellen Support. Entwickler verlassen sich auf die Gemeinschaft für Hilfe oder müssen unter Umständen einen Spezialisten für tiefergehende Probleme anheuern.

8. Lizenzierungsmodelle

Ein Vergleich zwischen Report .NET und IronPDF: Abbildung 15 - Lizenzinformationen zu IronPDF für .NET

8.1 IronPDF Lizenzmodell

IronPDF bietet eine Vielzahl von Lizenzmodellen an, die unterschiedlichen Entwicklungs- und Bereitstellungsanforderungen gerecht werden, um sicherzustellen, dass es eine Lösung für Projekte und Organisationen jeglicher Größe gibt. Hier ist eine Übersicht:

  1. Lite License ($799 USD): Dies ist die Basisoption, geeignet für einzelne Entwickler, die an einem einzigen Projekt an einem Standort arbeiten. Sie enthält E-Mail-Support, deckt jedoch keine lizenzfreie Weiterverteilung ab.
  2. Plus License ($1,199 USD): Ausgerichtet auf kleine Teams, unterstützt diese Lizenz bis zu drei Entwickler, die an drei Projekten über drei Standorte arbeiten. Sie verbessert den Support um 24-Stunden Email und Chat sowie Telefon-Support.
  3. Professional License ($2,399 USD): Diese ist für größere Teams und Projekte konzipiert und erlaubt bis zu 10 Entwicklern in 10 Standorten, die an 10 Projekten arbeiten. Sie umfasst alle Plus-Support-Optionen und fügt Unterstützung für Screen-Sharing für eine interaktivere Lösungssuche hinzu.
  4. Free Trial License: Ideal für Evaluationszwecke, erlaubt diese Testlizenz das kostenlose Testen von IronPDF. Sie ist jedoch für den privaten Gebrauch bestimmt und die generierten PDFs sollten nicht auf öffentlichen oder Unternehmensprojekten im Internet oder Intranet veröffentlicht werden.

Zusätzlich zu den Kernlizenzen gibt es Optionen für eine erweiterte Abdeckung:

  • Lizenzfreie Weiterverteilung: Wenn Sie IronPDF in ein Softwareprodukt einbinden müssen, das Sie vertreiben oder verkaufen werden, ist eine Lizenz für lizenzfreie Weiterverteilung erforderlich. Dies kostet $1,199 für SaaS und OEM-Weiterverteilung.
  • Erweiterter Support & Updates: Dieses Add-on stellt sicher, dass Sie fortlaufende Produktupdates und Support erhalten. Sie können aus Support-Paketen für 1 Jahr oder 5 Jahre auswählen, wobei letzteres Einsparungen gegenüber der jährlichen Option bietet.

8.2 Report.NET Lizenzmodell

Report.NET wird kostenlos unter der LGPL-Lizenz vertrieben. Die LGPL (Lesser General Public License) ist eine freie Software-Lizenz, die es Nutzern erlaubt, die Software zu benutzen, zu studieren, zu teilen und zu ändern. Die Lizenz stellt sicher, dass die Report.NET-Bibliothek sowohl in Open-Source- als auch in proprietärer Software frei genutzt werden kann, solange die LGPL-lizenzierten Teile des Codes nicht verändert werden. Wenn sie geändert werden, müssen diese Änderungen unter derselben Lizenz geteilt werden.

9. Schlussfolgerung

Beim Blick auf IronPDF und Report.NET haben wir verschiedene Elemente untersucht, wie ihre Fähigkeiten, die Vielzahl an angebotenen Funktionen, Benutzerfreundlichkeit, Unterstützungsdienste und wie sie lizenziert sind.

IronPDF bietet eine reiche Menge an Funktionen, die es Entwicklern nicht nur ermöglichen, PDF-Dateien aus HTML, Bildern und Text zu erstellen und zu bearbeiten, sondern auch erweiterte Funktionen wie Verschlüsselung, digitale Signaturen und maßgeschneiderte Kopf-/Fußzeilen zu implementieren. Die Unterstützung für unterschiedliche Lizenzierungsmodelle bedeutet, dass es für Projekte unterschiedlicher Größe von Solo-Entwicklern bis hin zu großen Unternehmen geeignet sein kann. Seine umfassende Dokumentation und professionelle Unterstützungsstruktur machen es geeignet für Projekte, bei denen konsistente Updates und direkte Unterstützung wichtig sind. IronPDF bietet auch eine kostenlose Testversion von IronPDF ab $799 an.

Report.NET ist hingegen ein einfaches Werkzeug, das sich gut zur Erstellung von PDF-Dokumenten eignet. Die LGPL-Lizenz bedeutet, dass es für Entwickler recht zugänglich ist, sowohl in persönlichen als auch in kommerziellen Projekten ohne wesentliche Einschränkungen zu verwenden. Obwohl es möglicherweise nicht die gleiche Ebene der strukturierten Unterstützung wie IronPDF bietet, fördert die Open-Source-Natur von Report.NET die Beiträge und Hilfestellung der Community.

Ihre Entscheidung zwischen IronPDF und Report.NET wird von den spezifischen Anforderungen Ihres Projekts abhängen. Wenn Ihr Projekt eine detaillierte PDF-Erstellung und -Bearbeitung mit Unterstützung durch professionellen Support erfordert, könnte IronPDF die bevorzugte Wahl sein.

Hinweis:Report.NET ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite ist nicht mit Report.NET verbunden, wird nicht von Report.NET 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.

Was sind die Hauptmerkmale der C#-Bibliothek zum Erstellen und Bearbeiten von PDF-Dokumenten?

IronPDF bietet Funktionen wie HTML-zu-PDF-Konvertierung, fortgeschrittene Bearbeitungsfunktionen einschließlich Zusammenführen und Aufteilen von PDFs, Formularverwaltung, Verschlüsselung und plattformübergreifende Kompatibilität.

Wie geht IronPDF mit PDF-Sicherheit um?

IronPDF unterstützt die Implementierung von Sicherheitsmaßnahmen wie Verschlüsselung und Passwortschutz, um sicherzustellen, dass sensible Informationen in PDF-Dokumenten sicher bleiben.

Kann IronPDF für fortgeschrittene PDF-Bearbeitung verwendet werden?

Ja, IronPDF bietet fortgeschrittene Bearbeitungsfunktionen wie Zusammenführen und Aufteilen von PDFs, Formularverwaltung und Anpassung von Kopf- und Fußzeilen.

Welche Dokumentationen und Support-Optionen stehen für IronPDF zur Verfügung?

IronPDF bietet detaillierte Dokumentation, Community-Foren und professionelle Support-Optionen, einschließlich E-Mail-, Chat- und Telefon-Support, abhängig von der Lizenz.

Welche Lizenzierungsoptionen bietet IronPDF?

IronPDF bietet mehrere Lizenzen, darunter Lite, Plus und Professional, die jeweils auf unterschiedliche Projektgrößen und Support-Bedürfnisse zugeschnitten sind. Es gibt auch eine kostenlose Testversion zur Bewertung.

Ist IronPDF eine plattformübergreifende PDF-Bibliothek?

Ja, IronPDF ist so konzipiert, dass es nahtlos über die .NET-Plattform, einschließlich .NET Core, funktioniert und Kompatibilität über verschiedene Betriebssysteme hinweg gewährleistet.

Was ist der Vorteil der Verwendung von IronPDF zur PDF-Erstellung?

IronPDF ist bekannt für seine robusten Fähigkeiten bei der Erstellung, Bearbeitung und Darstellung von PDFs aus HTML, und seine detaillierte Dokumentation macht es zu einem flexiblen Werkzeug für Entwickler.

Was sind einige häufige Fehlerszenarien bei der Verwendung von IronPDF?

Häufige Probleme beinhalten die fehlerhafte Darstellung von HTML-Elementen in PDFs, die typischerweise durch Sicherstellung der CSS-Kompatibilität und Verwendung der neuesten Version von IronPDF gelöst werden können.

Wie vergleicht sich IronPDF mit Open-Source-PDF-Bibliotheken?

IronPDF bietet fortgeschrittenere Funktionen und professionellen Support, während Open-Source-Lösungen wie Report.NET Einfachheit und Community-gesteuerten Support bieten.

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