PRODUKT-VERGLEICHE

iTextSharp C# HTML zu PDF Alternative für .NET Core

Veröffentlicht 23. Oktober 2024
Teilen Sie:

IronPDF undiText 7 (früher bekannt als iTextSharp) beide bieten die Möglichkeit zur Generierung, Manipulation undpDFs in .NET und .NET Core drucken.

WelcheC# PDF-Bibliothek am besten für Ihr .NET-Projekt geeignet ist? Ziel dieses Artikels ist es, den Lesern zu helfen, eine sachgerechte und informierte Entscheidung zu treffen.

IronPDF ist eine bekannte .NET-PDF-Bibliothek, die es Entwicklern ermöglicht, auf einfache Weise PDF-Dokumente zu erstellen, zu ändern und mit ihnen zu interagieren. IronPDF unterstützt verschiedene .NET-Umgebungen, einschließlich .NET Core, .NET 8, 7, 6 und Framework, und ist damit äußerst vielseitig. Zu den wichtigsten Funktionen von IronPDF gehören die Konvertierung von HTML in PDF, das Zusammenführen von PDFs, Verschlüsselung und digitale Signaturen. Die Dokumentation ist benutzerfreundlich, und der technische Support ist solide.

iTextSharp ist eine leistungsstarke PDF-Bibliothek für die .NET-Plattform, die ursprünglich von iText(die Java-basiert ist). Es bietet Lösungen auf Unternehmensebene für die Erstellung und Bearbeitung von PDFs und ist sowohl unter Open-Source(AGPL) und kommerzielle Lizenzen. Die iTextSharp-Kernbibliothek bietet ein hohes Maß an Flexibilität und ermöglicht es Entwicklern, PDFs von Grund auf zu erstellen, Formulare zu verwalten, digitale Signaturen anzuwenden, PDF-Funktionen hinzuzufügen und vieles mehr.

Plattformübergreifende Kompatibilität

IronPDF ist:

  • .NET zuerst
  • Offener Handel mit veröffentlichten Preisen
  • Konzentriert sich auf das Rendern von PDFs aus HTML, so dass Entwickler nicht lernen müssen, wie PDFs funktionieren
  • Eine gute Wahl für pragmatische Programmierer, die eine Aufgabe erledigen wollen.

    iText(iTextSharp) ist:

  • Java zuerst
  • Sehr viel Open Source. Wir können sie anrufen, um einen Kostenvoranschlag für die Verwendung in anderen als strikt quelloffenen AGLP-Projekten zu erhalten.
  • Konzentriert sich auf das Rendern von PDFs mithilfe einer programmatischen API, die auf der internen Funktionsweise von PDFs basiert
  • Eine gute Wahl für freie und akademische Projekte

    IronPDF unterstützt eine Vielzahl von Plattformen und Umgebungen und gewährleistet eine nahtlose Integration und Bereitstellung in verschiedenen Systemen:

    iTextSharp gibt es seit mindestens 6 Jahren. Es basiert auf einer Open-Source-Java-Codebasis namens iText und hat immer noch einen gewissen Java-Beigeschmack. Entwicklern, die Java zum ersten Mal erlernt haben, dürfte diese Bibliothek bekannt vorkommen.

    IronPDF ist eine .NET-first-Bibliothek mit einer API, die auf eine einfache Verwendung in Visual Studio ausgelegt ist. .NET existiert seit fast 20 Jahren, wächst und expandiert ständig und eröffnet viele Möglichkeiten, die IronPDF nutzen soll. Es ermöglicht uns, PDF-Dokumente in .NET Framework-Projekten zu erstellen und zu manipulieren. Sie können IronPDF alsalternative PDF-Bibliothek für iTextSharp-Benutzer.

    • .NET Core(8, 7, 6, 5 und 3.1+)

    • .NET-Standard(2.0+)
  • .NET-Framework(4.6.2+)
  • Anwendungsumgebungen: IronPDF funktioniert in Anwendungsumgebungen wie Windows, Linux, Mac, Docker, Azure und AWS
  • IDEs: Funktioniert mit IDEs wie Microsoft Visual Studio und JetBrains Rider & ReSharper
  • OS und Prozessoren: Unterstützt verschiedene Betriebssysteme und Prozessoren wie Windows, Mac, Linux, x64, x86, ARM

iTextSharp:

  • .NET-Versionen: Unterstützt .NET Core(2.x, 3.x), .NET-Framework(4.6.1+).NET 5+.
  • App-Umgebungen: Läuft unter Windows, macOS, Linux und Docker.
  • Open Source: Verfügbar unter AGPL-Lizenz.

Vergleich der wichtigsten Funktionen: IronPDF vs. iTextSharp

IronPDF und iTextSharp bieten beide eine Reihe von Funktionen und Werkzeugen, die für die Arbeit mit PDF-Dateien verwendet werden können; Der Fokus des nächsten Abschnitts liegt darauf, einige dieser Funktionen genauer zu betrachten und zu vergleichen, wie die beiden Bibliotheken bei der Durchführung verschiedener PDF-bezogener Aufgaben abschneiden.

IronPDF

  • HTML zu PDF Konvertierung: Unterstützt HTML, CSS, JavaScript und Bilder.
  • PDF-Dateimanipulation: Dokumente teilen und zusammenführen, die Formatierung von PDF-Dokumenten ändern und bestehende Dokumente bearbeiten
  • Sicherheit: PDF-Verschlüsselung und -Entschlüsselung.
  • Bearbeiten: Hinzufügen von Kommentaren, Lesezeichen und Gliederungen.
  • Vorlagen: Übernehmen Sie Kopf- und Fußzeilen sowie Seitenzahlen.
  • Wasserzeichen: Sie können PDF-Dateien ganz einfach mit Text- und Bildwasserzeichen versehen; nutzen Sie die Vorteile der Verwendung von HTML/CSS, um die volle Kontrolle über den Prozess zu erhalten.
  • PDF Stamping: Mit IronPDF können Sie Bilder und Text in Ihre PDF-Dokumente stempeln.

    Weitere Informationen zu den umfangreichen Funktionen, die IronPDF bietet, finden Sie auf derIronPDF-Funktionsseite.

iTextSharp:

  • PDF-Erstellung: Unterstützt die Erstellung von PDF-Dokumenten von Grund auf.
  • Formulare: Erstellen und bearbeiten Sie PDF-Formulare.
  • Digitale Signaturen: Unterschreiben Sie PDF-Dokumente.
  • Komprimierung: Optimieren Sie die Größe von PDF-Dateien.
  • Inhaltsextraktion: Extrahieren Sie Text und Bilder aus PDFs.
  • Open Source: Verfügbar unter AGPL-Lizenz.
  • Anpassungsfähigkeit: Hoher Grad an Anpassbarkeit für fortgeschrittene Anwendungsfälle.

Vergleich der PDF-Funktionen von IronPDF und iTextSharp

Konvertierung von HTML in PDF

Konvertieren HTML-Inhalt in PDF umwandeln ist eine sehr einfache Aufgabe, die in vielen verschiedenen Büros und Arbeitsbereichen durchgeführt wird. Nachfolgend finden Sie Code-Beispiele, in denen IronPDF und iText diesen Prozess vergleichen.

IronPDF

using IronPdf;

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

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

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

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

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

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

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

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

' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

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

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

iTextSharp

using iText.Html2pdf;

static void Main(string[] args)
  {
    using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
    using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
    {
        ConverterProperties converterProperties = new ConverterProperties();
        HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
    }
  }
using iText.Html2pdf;

static void Main(string[] args)
  {
    using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
    using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
    {
        ConverterProperties converterProperties = new ConverterProperties();
        HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
    }
  }
Imports iText.Html2pdf

Shared Sub Main(ByVal args() As String)
	Using htmlSource As FileStream = File.Open("input.html", FileMode.Open)
	Using pdfDest As FileStream = File.Open("output.pdf", FileMode.Create)
		Dim converterProperties As New ConverterProperties()
		HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties)
	End Using
	End Using
End Sub
VB   C#

Für die Konvertierung von HTML in PDF bietet IronPDF ein übersichtliches und bequemes Werkzeug für diese Aufgabe. IronPDF nutzt den ChromePdfRenderer, um HTML-Inhalte in PDFs zu konvertieren, und zeichnet sich dadurch aus, dass es Benutzern pixelgenaue PDF-Dokumente liefert. Benutzer können PDFs direkt aus HTML-Zeichenfolgen erstellen, wie im ersten Beispiel gezeigt, oder externe Elemente wie Bilder mit einem optionalen Basispfad einbinden, wie im fortgeschrittenen Beispiel gezeigt. iTextSharp hingegen verwendet HtmlConverter, um HTML-Dateien zu konvertieren, aber der Prozess erfordert mehr Einstellungen.

PDF-Dateien verschlüsseln

Verschlüsselung und Entschlüsselung von PDF-Dokumenten sind an vielen Arbeitsplätzen unerlässlich. Um diese Aufgabe leicht zu bewältigen, braucht man ein Werkzeug, das diese Aufgabe bequem erledigen kann. Im folgenden Code sehen wir, wie iTextSharp und IronPDF die Verschlüsselung von PDFs angehen.

IronPDF

using IronPdf;
using System;

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

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

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

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

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

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

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

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

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

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

' Edit file security settings
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
VB   C#

iTextSharp

using System;
using System.IO;
using System.Text;
using iText.Kernel.Pdf;

public class EncryptPdf
    {
        public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
        public static readonly String SRC = "../../../resources/pdfs/hello.pdf";

        public static readonly String OWNER_PASSWORD = "World";
        public static readonly String USER_PASSWORD = "Hello";

        public static void Main(String[] args)
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            new EncryptPdf().ManipulatePdf(DEST);
        }

        protected void ManipulatePdf(String dest)
        {
            PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
                new WriterProperties().SetStandardEncryption(
                    Encoding.UTF8.GetBytes(USER_PASSWORD),
                    Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                    EncryptionConstants.ALLOW_PRINTING,
                    EncryptionConstants.ENCRYPTION_AES_128 
 EncryptionConstants.DO_NOT_ENCRYPT_METADATA
                )));
            document.Close();
        }
    }
using System;
using System.IO;
using System.Text;
using iText.Kernel.Pdf;

public class EncryptPdf
    {
        public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
        public static readonly String SRC = "../../../resources/pdfs/hello.pdf";

        public static readonly String OWNER_PASSWORD = "World";
        public static readonly String USER_PASSWORD = "Hello";

        public static void Main(String[] args)
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            new EncryptPdf().ManipulatePdf(DEST);
        }

        protected void ManipulatePdf(String dest)
        {
            PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
                new WriterProperties().SetStandardEncryption(
                    Encoding.UTF8.GetBytes(USER_PASSWORD),
                    Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                    EncryptionConstants.ALLOW_PRINTING,
                    EncryptionConstants.ENCRYPTION_AES_128 
 EncryptionConstants.DO_NOT_ENCRYPT_METADATA
                )));
            document.Close();
        }
    }
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

IronPDF bietet Anwendern eine einfache Möglichkeit, PDF-Dateien zu verschlüsseln, und gibt ihnen gleichzeitig die Möglichkeit, den Prozess zu kontrollieren, einschließlich der Bearbeitung von Metadaten und der Anpassung von Sicherheitseinstellungen, wie z. B. das Einstellen von schreibgeschützten Dokumenten oder die Einschränkung von Benutzeraktionen wie Kopieren und Einfügen. Auf der anderen Seite bietet iTextSharp eine genauere Kontrolle, erfordert aber zusätzliche Konfiguration, wie z. B. die Festlegung von Verschlüsselungsstandards und Berechtigungen.

PDF-Inhalt redigieren

Gelegentlich kann es im Umgang mit vertraulichen oder privaten Informationen erforderlich seinredigieren teile einer PDF-Datei. Die folgenden Beispiele zeigen, wie Sie Text mit IronPDF im Vergleich zu iTextSharp redigieren können.

IronPDF

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

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

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

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

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

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

pdf.SaveAs("redacted.pdf")
VB   C#

iTextSharp

using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Kernel.Colors;

string src = "input.pdf";
string dest = "output_redacted.pdf";

using (PdfReader reader = new PdfReader(src))
            {
                using (PdfWriter writer = new PdfWriter(dest))
                {
                    using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
                    {
                        // Iterate through each page
                        for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
                        {
                            PdfPage page = pdfDoc.GetPage(pageNum);
                            PdfCanvas canvas = new PdfCanvas(page);
                            Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Example: Define rectangles to redact

                            // Overlay black rectangles to simulate redaction
                            foreach (Rectangle rect in rectanglesToRedact)
                            {
                                canvas.SetFillColor(ColorConstants.BLACK)
                                    .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                                    .Fill();
                            }
                        }
                    }
                }
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Kernel.Colors;

string src = "input.pdf";
string dest = "output_redacted.pdf";

using (PdfReader reader = new PdfReader(src))
            {
                using (PdfWriter writer = new PdfWriter(dest))
                {
                    using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
                    {
                        // Iterate through each page
                        for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
                        {
                            PdfPage page = pdfDoc.GetPage(pageNum);
                            PdfCanvas canvas = new PdfCanvas(page);
                            Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Example: Define rectangles to redact

                            // Overlay black rectangles to simulate redaction
                            foreach (Rectangle rect in rectanglesToRedact)
                            {
                                canvas.SetFillColor(ColorConstants.BLACK)
                                    .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                                    .Fill();
                            }
                        }
                    }
                }
Imports System
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports iText.Kernel.Colors

Private src As String = "input.pdf"
Private dest As String = "output_redacted.pdf"

Using reader As New PdfReader(src)
				Using writer As New PdfWriter(dest)
					Using pdfDoc As New PdfDocument(reader, writer)
						' Iterate through each page
						Dim pageNum As Integer = 1
						Do While pageNum <= pdfDoc.GetNumberOfPages()
							Dim page As PdfPage = pdfDoc.GetPage(pageNum)
							Dim canvas As New PdfCanvas(page)
							Dim rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) } ' Example: Define rectangles to redact

							' Overlay black rectangles to simulate redaction
							For Each rect As Rectangle In rectanglesToRedact
								canvas.SetFillColor(ColorConstants.BLACK).Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()).Fill()
							Next rect
							pageNum += 1
						Loop
					End Using
				End Using
VB   C#

**Das Redaktionssystem von IronPDF ist übersichtlich und einfach zu bedienen und benötigt nur wenige Zeilen Code, um den Redaktionsprozess zu optimieren. Dies trägt zur Effizienzsteigerung bei der PDF-Redaktion bei und bietet Anwendern eine einfache Möglichkeit, ihre sensiblen und privaten Daten zu schützen.

Andererseits verfügt iTextSharp nicht über eine integrierte Schwärzungsfunktion, so dass Sie manuell schwarze Rechtecke über den zu schwärzenden Inhalt ziehen müssen. Bei diesem Ansatz kann jedoch der Text unter dem Rechteck zugänglich bleiben, so dass Benutzer die verborgenen Daten per Copy-Paste einfügen können, so dass keine echte Schwärzung möglich ist.

Signieren von PDF-Dokumenten

In der Lage zu seinzeichen digitale Dokumente wie PDF-Dateien zu erstellen und den Prozess zu automatisieren, könnte eine Zeitersparnis bedeuten. Die folgenden Codeschnipsel vergleichen, wie IronPDF und iTextSharp mit digitalen Signaturen umgehen.

IronPDF

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

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

// Create PdfSignature object
var sig = new PdfSignature(cert);

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

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

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
VB   C#

iTextSharp

using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;

class Program
{
    static void Main(string[] args)
    {
        string src = "input.pdf";
        string dest = "output_signed.pdf";
        string pfxFile = "your_certificate.pfx";
        string pfxPassword = "your_password";

        try
        {
            // Load your certificate
            Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray());
            string alias = null;
            foreach (string al in ks.Aliases)
            {
                if (ks.IsKeyEntry(al))
                {
                    alias = al;
                    break;
                }
            }
            ICipherParameters pk = ks.GetKey(alias).Key;
            X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
            X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());

            // Create output PDF with signed content
            using (PdfReader reader = new PdfReader(src))
            {
                using (PdfWriter writer = new PdfWriter(dest))
                {
                    using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
                    {
                        // Create the signer
                        PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode());

                        // Configure signature appearance
                        PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
                        appearance.SetReason("Digital Signature");
                        appearance.SetLocation("Your Location");
                        appearance.SetContact("Your Contact");

                        // Create signature
                        IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
                        signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
                    }
                }
            }
            Console.WriteLine($"PDF digitally signed successfully: {dest}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;

class Program
{
    static void Main(string[] args)
    {
        string src = "input.pdf";
        string dest = "output_signed.pdf";
        string pfxFile = "your_certificate.pfx";
        string pfxPassword = "your_password";

        try
        {
            // Load your certificate
            Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray());
            string alias = null;
            foreach (string al in ks.Aliases)
            {
                if (ks.IsKeyEntry(al))
                {
                    alias = al;
                    break;
                }
            }
            ICipherParameters pk = ks.GetKey(alias).Key;
            X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
            X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());

            // Create output PDF with signed content
            using (PdfReader reader = new PdfReader(src))
            {
                using (PdfWriter writer = new PdfWriter(dest))
                {
                    using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
                    {
                        // Create the signer
                        PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode());

                        // Configure signature appearance
                        PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
                        appearance.SetReason("Digital Signature");
                        appearance.SetLocation("Your Location");
                        appearance.SetContact("Your Contact");

                        // Create signature
                        IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
                        signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
                    }
                }
            }
            Console.WriteLine($"PDF digitally signed successfully: {dest}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
Imports System
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Signatures
Imports Org.BouncyCastle.Crypto
Imports Org.BouncyCastle.Pkcs
Imports Org.BouncyCastle.X509

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim src As String = "input.pdf"
		Dim dest As String = "output_signed.pdf"
		Dim pfxFile As String = "your_certificate.pfx"
		Dim pfxPassword As String = "your_password"

		Try
			' Load your certificate
			Dim ks As New Pkcs12Store(New FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray())
			Dim [alias] As String = Nothing
			For Each al As String In ks.Aliases
				If ks.IsKeyEntry(al) Then
					[alias] = al
					Exit For
				End If
			Next al
			Dim pk As ICipherParameters = ks.GetKey([alias]).Key
			Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias])
			Dim cert As New X509Certificate2(chain(0).Certificate.GetEncoded())

			' Create output PDF with signed content
			Using reader As New PdfReader(src)
				Using writer As New PdfWriter(dest)
					Using pdfDoc As New PdfDocument(reader, writer)
						' Create the signer
						Dim signer As New PdfSigner(pdfDoc, writer, (New StampingProperties()).UseAppendMode())

						' Configure signature appearance
						Dim appearance As PdfSignatureAppearance = signer.GetSignatureAppearance()
						appearance.SetReason("Digital Signature")
						appearance.SetLocation("Your Location")
						appearance.SetContact("Your Contact")

						' Create signature
						Dim pks As IExternalSignature = New PrivateKeySignature(pk, "SHA-256")
						signer.SignDetached(pks, chain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS)
					End Using
				End Using
			End Using
			Console.WriteLine($"PDF digitally signed successfully: {dest}")
		Catch ex As Exception
			Console.WriteLine($"Error signing PDF: {ex.Message}")
		End Try
	End Sub
End Class
VB   C#

Für das digitale Aufbringen von Signaturen auf PDF-Dateien bietet IronPDF ein kompaktes und dennoch leistungsfähiges Werkzeug für diesen Prozess. Dank seiner Einfachheit kann der Prozess schnell durchgeführt werden, was für jeden Entwickler, der es für seine Signieranforderungen implementiert, Zeit spart. Im Gegensatz dazu erfordert iTextSharp mehr Einrichtungsaufwand und beinhaltet zusätzliche Schritte zur Handhabung digitaler Signaturen, was es komplexer macht, obwohl es für fortgeschrittene Benutzer potenziell flexibler ist.

Wasserzeichen auf PDF-Dokumente anwenden

Die Möglichkeit zum Hinzufügen und Personalisierenwasserzeichen auf PDFs mit Hilfe von Software kann sehr hilfreich sein, wenn es um Vertraulichkeit, Urheberrechtsschutz, Markenbildung oder andere Aufgaben im Zusammenhang mit sensiblen Informationen geht. Im Folgenden wird verglichen, wie IronPDF und iTextSharp Wasserzeichen auf PDF-Dateien anwenden.

IronPDF

using IronPdf;

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

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

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

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

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

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

iTextSharp

using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;

public class TransparentWatermark 
    {
        public static readonly String DEST = "results/sandbox/stamper/transparent_watermark.pdf";
        public static readonly String SRC = "../../../resources/pdfs/hero.pdf";

        public static void Main(String[] args) 
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            new TransparentWatermark().ManipulatePdf(DEST);
        }

        protected void ManipulatePdf(String dest) 
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
            PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
            PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
            Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
                    .SetFont(font)
                    .SetFontSize(15);

            Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
                    .ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
            canvasWatermark1.Close();
            PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
            over.SetFillColor(ColorConstants.BLACK);
            paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
                    .SetFont(font)
                    .SetFontSize(15);

            Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
                    .ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
            canvasWatermark2.Close();
            paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
                    .SetFont(font)
                    .SetFontSize(15);
            over.SaveState();

            // Creating a dictionary that maps resource names to graphics state parameter dictionaries
            PdfExtGState gs1 = new PdfExtGState();
            gs1.SetFillOpacity(0.5f);
            over.SetExtGState(gs1);
            Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
                    .ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
            canvasWatermark3.Close();
            over.RestoreState();

            pdfDoc.Close();
        }
    }
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;

public class TransparentWatermark 
    {
        public static readonly String DEST = "results/sandbox/stamper/transparent_watermark.pdf";
        public static readonly String SRC = "../../../resources/pdfs/hero.pdf";

        public static void Main(String[] args) 
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();

            new TransparentWatermark().ManipulatePdf(DEST);
        }

        protected void ManipulatePdf(String dest) 
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
            PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
            PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
            Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
                    .SetFont(font)
                    .SetFontSize(15);

            Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
                    .ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
            canvasWatermark1.Close();
            PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
            over.SetFillColor(ColorConstants.BLACK);
            paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
                    .SetFont(font)
                    .SetFontSize(15);

            Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
                    .ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
            canvasWatermark2.Close();
            paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
                    .SetFont(font)
                    .SetFontSize(15);
            over.SaveState();

            // Creating a dictionary that maps resource names to graphics state parameter dictionaries
            PdfExtGState gs1 = new PdfExtGState();
            gs1.SetFillOpacity(0.5f);
            over.SetExtGState(gs1);
            Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
                    .ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
            canvasWatermark3.Close();
            over.RestoreState();

            pdfDoc.Close();
        }
    }
Imports iText.IO.Font
Imports iText.IO.Font.Constants
Imports iText.Kernel.Colors
Imports iText.Kernel.Font
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas
Imports iText.Kernel.Pdf.Extgstate
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties

Public Class TransparentWatermark
		Public Shared ReadOnly DEST As String = "results/sandbox/stamper/transparent_watermark.pdf"
		Public Shared ReadOnly SRC As String = "../../../resources/pdfs/hero.pdf"

		Public Shared Sub Main(ByVal args() As String)
			Dim file As New FileInfo(DEST)
			file.Directory.Create()

			Call (New TransparentWatermark()).ManipulatePdf(DEST)
		End Sub

		Protected Sub ManipulatePdf(ByVal dest As String)
			Dim pdfDoc As New PdfDocument(New PdfReader(SRC), New PdfWriter(dest))
			Dim under As New PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), New PdfResources(), pdfDoc)
			Dim font As PdfFont = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA))
			Dim paragraph As Paragraph = (New Paragraph("This watermark is added UNDER the existing content")).SetFont(font).SetFontSize(15)

			Dim canvasWatermark1 As Canvas = (New Canvas(under, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
			canvasWatermark1.Close()
			Dim over As New PdfCanvas(pdfDoc.GetFirstPage())
			over.SetFillColor(ColorConstants.BLACK)
			paragraph = (New Paragraph("This watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)

			Dim canvasWatermark2 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
			canvasWatermark2.Close()
			paragraph = (New Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
			over.SaveState()

			' Creating a dictionary that maps resource names to graphics state parameter dictionaries
			Dim gs1 As New PdfExtGState()
			gs1.SetFillOpacity(0.5F)
			over.SetExtGState(gs1)
			Dim canvasWatermark3 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
			canvasWatermark3.Close()
			over.RestoreState()

			pdfDoc.Close()
		End Sub
End Class
VB   C#

IronPDF's einfaches und intuitives API ermöglicht es dem Anwender, seine PDF-Dateien schnell mit individuellen Wasserzeichen zu versehen und dabei die volle Kontrolle über den Prozess zu behalten. Durch die Verwendung von HTML/CSS wird der Prozess weiter vereinfacht, ohne dass die Kontrolle über die Anpassung verloren geht. der Ansatz von iTextSharp** zum Hinzufügen von Wasserzeichen zu PDFs erfordert mehr manuelle Arbeit zur Durchführung der Aufgabe, was den Prozess verlangsamen kann.

Bilder und Text in eine PDF-Datei einfügen

Es gibt Momente, in denen die PDF-Seitengestempelt mit Inhalt, ähnlich wie man Wasserzeichen auf seine PDF-Dateien anbringen kann. Mal sehen, wie IronPDF im Vergleich zu iTextSharp abschneidet:

IronPDF

using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

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

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

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

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

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

ChromePdfRenderer renderer = new ChromePdfRenderer();

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

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

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

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

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

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

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

' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
VB   C#

iTextSharp

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText)
{
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath));

    var document = new Document(pdfDoc);
    ...
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText)
{
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath));

    var document = new Document(pdfDoc);
    ...
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element

Public Sub StampPDF(ByVal inputPdfPath As String, ByVal outputPdfPath As String, ByVal stampText As String)
	Dim pdfDoc As New PdfDocument(New PdfReader(inputPdfPath), New PdfWriter(outputPdfPath))

	Dim document As New Document(pdfDoc)
	'...
End Sub
VB   C#

Durch einen schnellen Blick auf den Code können Sie sehen, dass IronPDF pragmatisch ist und auf den häufigen Anforderungen der Endbenutzer basiert.

iText ist eine niedrigere Bibliothek, die sich auf eine Zeichen-API konzentriert, bei der wir Objekte, Formen und Text zu Seiten hinzufügen.

iTextSharp.dll verwendet ein primär programmatisches Modell zum Rendern von PDFs. Bei der Verwendung der iTextSharp PDF-Bibliothek wird jedes Stück PDF-Text, Grafik, Tabelle oder Linie auf ein PDF „gezeichnet“ oder aufgetragen. Die API wirkt niedrigstufig und konzentriert sich auf den PDF-Dokumentenstandard. Dieses Modell ermöglicht Präzision, erfordert jedoch möglicherweise, dass Entwickler sich ein wenig damit vertraut machen, wie PDFs funktionieren. Das enge Anpassen an einen vorhandenen Designstil oder Webressourcen kann einige Iterationen erfordern und das Lesen deriTextSharp-Dokumentation. Im Einklang mit seinem Erbe haben die Methodik und die programmgesteuerte Schnittstelle einen ausgeprägten Java-Charakter.

Im Gegensatz dazu verwendet IronPDF einen vollständig eingebetteten Webbrowser-Renderer, um zuhTML in PDF konvertieren. Nach kurzer(1- und 2-zeilig) C# Codebeispiele für die Umwandlung von HTML in PDF, Entwickler können PDFs aus vorhandenen oder neuen HTML-, Bild- und CSS-Dateien erstellen. So können die Entwickler eng mit den vorhandenen Web-Assets zusammenarbeiten und während eines Projekts auch parallel mit den Designern arbeiten. iText beinhaltet zwar die HTML-zu-PDF-Funktionalität für C# .NET, doch es scheint nicht das dominierende Merkmal der Bibliothek zu sein.

Lesen Sie weiter, um mehr vergleichende Details über die verschiedenen Möglichkeiten zu erfahren, wie IronPDF und iTextSharp Entwicklern helfen können, die folgenden Ziele zu erreichen:

1. Lizenzvergabe

Lizenzoptionen sind ebenfalls ein wichtiger Faktor in Entwicklerprojekten. iTextSharp ist Open Source unter der AGPL-Lizenzvereinbarung. Beim Lizenzieren unter AGLP muss jeder, der irgendeinen Teil einer Anwendung nutzt, der iTextSharp enthält(auch über ein Firmennetz oder das Internet) kann ein Recht auf eine vollständige Kopie des Quellcodes der Anwendung haben. Dies eignet sich hervorragend für akademische Arbeiten. Wenn wir iTextSharp in kommerziellen Anwendungen verwenden möchten, ist es am besten, iText zu kontaktieren undein Angebot über die Preise für die kommerzielle Nutzung von iText anfordern.

IronPDF istfrei für Entwicklungund kann dannfür den kommerziellen Einsatz lizenziert zu öffentlich veröffentlichten, günstigen Preisen ab $749.

IronPDF und iTextSharp

So vergleichen sich die beiden Bibliotheken:

IronPDFiTextSharp
Konvertierung von HTML in PDF über einen vollständig integrierten WebbrowserEinfache HTML-Umwandlung in PDF über ein pdfHTML-Zusatzmodul
Schwerpunkt Rendering: Eingebetteter WebbrowserSchwerpunkt Rendering: Programmatisches Zeichenmodell
IronPDF hat explizite Lizenzen mit veröffentlichten PreisenAGPL! Preise für kommerzielle Nutzung nicht veröffentlicht.
Einfacher Code mit .NET First DesignBasierend auf einer Java-API
Nicht geeignet für akademische Aufgaben und Kursarbeiten Hervorragend geeignet für akademische Aufgaben und Forschung

Wesentliche Unterschiede

Erzeugen von PDF aus HTML mit IronPDF

IronPDF ermöglicht es .NET- und .NET Core-Entwicklern, PDF-Inhalte einfach in C#, F# und VB.NET für .NET Core und .NET Framework zu erstellen, zu verbinden, zu teilen, zu bearbeiten und zu extrahieren.Erstellen Sie PDFs aus HTML-, ASPX-, CSS-, JS- und Bilddateien..

Es nutzt einen vollständig eingebetteten Webbrowser, um HTML in PDF zu konvertieren. Dies ermöglicht es Entwicklern, PDFs aus HTML, Bildern und CSS zu generieren, eng mit bestehenden Web-Assets zu arbeiten und auch parallel mit Designern während eines Projekts zu arbeiten.

2. IronPDF-Funktionen

IronPDF konzentriert sich wirklich auf die Produktivität der Entwickler. Die Bibliothek vereinfacht viele häufige komplexe PDF-Aufgaben in praktische C#-Methoden, um Text und Bilder zu extrahieren, PDFs zu signieren, PDFs mit neuem HTML zu bearbeiten und mehr, ohne dass der Entwickler den PDF-Dokumentstandard studieren muss, um das beste Ergebnis zu erzielen.

  • Generieren von PDF-Dokumenten aus HTML, Bildern und ASPX-Dateien
  • Lesen von PDF-Text
  • Extrahieren von Daten und Bildern aus PDFs
  • Zusammenführung von PDF-Dokumenten
  • PDFs aufteilen
  • Manipulation von PDFs

    . iTextSharp Dokumentation Merkmale

    DieiTextSharp.dll verwendet ein primär programmatisches Modell zum Rendern von PDFs und verfügt über fortschrittliche APIs zur PDF-Bearbeitung, die leistungsstark sind und sich eng an den PDF-Standard halten.

  • AGLP strenge Open-Source-Lizenzierung
  • Programmatisches Zeichenmodell
  • PDFs bearbeiten und lesen
  • Solide Funktionalität für die PDF-Bearbeitung
  • Basierend auf einer Java-Bibliothek

    Zum Vergleich erstellen wir ein Beispielprojekt, das beide Bibliotheken verwendet:


    Beispielprojekt

    Ein ASP.NET-Projekt erstellen

    Führen Sie die folgenden Schritte aus, um eine ASP.NET-Website zu erstellen:

  1. Visual Studio öffnen

  2. Klicken Sie auf Datei > Neues Projekt

  3. Wählen Sie im Listenfeld Projekttyp unter Visual C# die Option Web

  4. ASP.NET-Webanwendung auswählen
    New Project related to 2. IronPDF-Funktionen

    Abbildung 1 - Neues Projekt

    • OK anklicken
    • Wählen Sie auf dem nächsten Bildschirm Webformulare aus, wie in Abbildung 2 unten dargestellt
      Web Form related to 2. IronPDF-Funktionen

      Abbildung 2 - Web-Formulare

  • OK anklicken

    Jetzt haben wir etwas, womit wir arbeiten können. Installieren wir IronPDF.


    Los geht's

3. Installation der IronPDF-Bibliothek

Um IronPDF nutzen zu können, müssen Sie es zunächst installieren(kostenlos). Es gibt zwei Möglichkeiten:

  • NuGet
  • Download der Bibliothek

    Schauen wir uns das einmal genauer an.

3.1. Installation mit NuGet

Es gibt drei Möglichkeiten, das IronPDF NuGet-Paket zu installieren:

  1. Visual Studio

  2. Entwickler-Eingabeaufforderung

  3. Laden Sie das NuGet-Paket direkt herunter

    Gehen wir sie der Reihe nach durch.

3.2. Visual Studio

Visual Studio bietet den NuGet Package Manager, mit dem Sie NuGet-Pakete in Ihren Projekten installieren können. Sie können über das Projektmenü darauf zugreifen oder indem Sie mit der rechten Maustaste auf Ihr Projekt im Lösungsexplorer klicken. Diese beiden Optionen sind in den Abbildungen 3 und 4 dargestellt

Project Menu related to 3.2. Visual Studio

Abbildung 3 - Menü Projekt

Solution Explorer related to 3.2. Visual Studio

Abbildung 4 - Rechtsklick auf den **Lösungs-Explorer**

Nachdem Sie in einer der beiden Optionen auf NuGet-Pakete verwalten geklickt haben, suchen Sie nach dem IronPDF-Paket und installieren es wie in Abbildung 5 dargestellt.

Install Ironpdf Nuget Package related to 3.2. Visual Studio

Abbildung 5 - IronPDF NuGet-Paket installieren

3.3. Entwickler-Eingabeaufforderung

Die folgenden Schritte öffnen die Entwickler-Eingabeaufforderung und installieren das IronPDF NuGet-Paket.

  1. Suchen Sie nach Ihrer Entwickler-Eingabeaufforderung - sie befindet sich normalerweise in Ihrem Visual Studio-Ordner

  2. Geben Sie den folgenden Befehl ein: PM > Install-Package IronPDF

  3. Eingabe drücken

  4. Das Paket wird installiert

  5. Laden Sie Ihr Visual Studio-Projekt neu

3.4. Laden Sie das NuGet-Paket direkt herunter

Um das NuGet-Paket herunterzuladen:

  1. Navigieren Sie zuhttps://www.nuget.org/packages/IronPdf/

  2. Klicken Sie auf Paket herunterladen

  3. Nachdem das Paket heruntergeladen wurde, doppelklicken Sie es

  4. Laden Sie Ihr Visual Studio-Projekt neu

3.5. Laden Sie die .DLL-Bibliothek herunter

Die zweite Möglichkeit, IronPDF zu installieren, besteht darindirekter Download.

Download Ironpdf Library related to 3.5. Laden Sie die .DLL-Bibliothek herunter

Abbildung 6 - IronPDF-Bibliothek herunterladen

Verweisen Sie auf die Bibliothek in Ihrem Projekt, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie mit der rechten Maustaste auf die Lösung im Projektmappen-Explorer

  2. Referenzen auswählen

  3. Suchen Sie nach der IronPDF.dll-Bibliothek

  4. OK anklicken

    Nun, da Sie eingerichtet sind, können wir nach der Einrichtung von iTextSharp damit beginnen, mit den großartigen Funktionen der IronPDF-Bibliothek zu spielen.

    Installieren Sie iTextSharp mithilfe von NuGet

    Es gibt drei Möglichkeiteninstallieren Sie das iTextSharp NuGet-Paketsie sind:

    • Visual Studio
    • Entwickler-Eingabeaufforderung
    • Laden Sie das NuGet-Paket direkt herunter

    Gehen wir sie der Reihe nach durch.

    Suchen Sie für Visual Studio nach iText und installieren Sie die entsprechenden Pakete, wie im Folgenden gezeigt.

    Itext related to Installieren Sie iTextSharp mithilfe von NuGet

    Abbildung 7 - iText

    Oder, in der Eingabeaufforderung für Entwickler(wie zuvor gezeigt, geben Sie den folgenden Befehl ein)

  • PM > Installieren-Paket itext7

    Oder, herunterladeniText 7 direkt von ihrer Website.

    Nachdem Sie nun die erforderlichen Projekte erstellt haben, wollen wir diese beiden Bibliotheken im Code vergleichen.


    Vergleichen Sie den Code

4. Erstellen einer PDF-Datei aus einer vorhandenen URL

Der folgende Code lädt eine Webseite herunter und wandelt sie in ein PDF-Dokument um.

4.1. IronPDF Website zu PDF

Der folgende Code verwendet IronPDF, um ein PDF-Dokument direkt von einer Website-Adresse zu erstellen. Benutzerdefinierte Kopf- und Fußzeilen sind ebenfalls enthalten.

/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
    // Create a PDF from any existing web page
    var Renderer = new IronPdf.ChromePdfRenderer();

    // Create a PDF from an existing HTML
    Renderer.RenderingOptions.MarginTop = 50;  //millimetres
    Renderer.RenderingOptions.MarginBottom = 50;
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    };
    Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    };

    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

    Renderer.RenderingOptions.EnableJavaScript = true;
    Renderer.RenderingOptions.RenderDelay = 500; //milliseconds

    using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");

    PDF.SaveAs("wikipedia.pdf");
}
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
    // Create a PDF from any existing web page
    var Renderer = new IronPdf.ChromePdfRenderer();

    // Create a PDF from an existing HTML
    Renderer.RenderingOptions.MarginTop = 50;  //millimetres
    Renderer.RenderingOptions.MarginBottom = 50;
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    };
    Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    };

    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

    Renderer.RenderingOptions.EnableJavaScript = true;
    Renderer.RenderingOptions.RenderDelay = 500; //milliseconds

    using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");

    PDF.SaveAs("wikipedia.pdf");
}
'''
'''IronPDF URL to PDF
'''anchor-ironpdf-website-to-pdf
'''*
Private Sub ExistingWebURL()
	' Create a PDF from any existing web page
	Dim Renderer = New IronPdf.ChromePdfRenderer()

	' Create a PDF from an existing HTML
	Renderer.RenderingOptions.MarginTop = 50 'millimetres
	Renderer.RenderingOptions.MarginBottom = 50
	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
	Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
		.CenterText = "{pdf-title}",
		.DrawDividerLine = True,
		.FontSize = 16
	}
	Renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
		.LeftText = "{date} {time}",
		.RightText = "Page {page} of {total-pages}",
		.DrawDividerLine = True,
		.FontSize = 14
	}

	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

	Renderer.RenderingOptions.EnableJavaScript = True
	Renderer.RenderingOptions.RenderDelay = 500 'milliseconds

	Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")

	PDF.SaveAs("wikipedia.pdf")
End Sub
VB   C#

IronPDF kann Ihnen helfen, Text oder Bilder in PDFs einzufügen, und zwar auf eine sehr vielseitige und anpassbare Weise; können Sie die volle Verantwortung übernehmen. Die API ist leicht zu verstehen und zu bedienen, insbesondere für Entwickler, die mit HTML/CSS vertraut sind. iTextSharp nutzt seine Bild- und Textstempelwerkzeuge, um den Benutzern mehr Kontrolle über den Inhalt ihrer PDF-Dateien zu geben, obwohl der Prozess am Ende mehr manuell sein kann.

DOCX in PDF konvertieren

Manchmal müssen Sie PDF-Dateien von einem Format in ein anderes konvertieren. In diesem Fall betrachten wirUmwandlung von DOCX in PDF und vergleichen, wie IronPDF und iTextSharp diesen Prozess unterschiedlich handhaben.

IronPDF

using IronPdf;

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

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

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

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

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

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

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
VB   C#

iTextSharp

Leider bietet iTextSharp keine integrierte DOCX-zu-PDF-Konvertierungsfunktionalität, und Entwickler müssen sich für diese Aufgabe auf externe Bibliotheken wie Aspose.Words verlassen.

IronPDF bietet Entwicklern ein einfaches und übersichtliches Werkzeug für die Konvertierung von DOCX in PDF, das die Umwandlung von DOCX-Dateien in das PDF-Format ohne externe Bibliotheken ermöglicht. iTextSharp hingegen stützt sich auf externe Bibliotheken, um diese Aufgabe zu erfüllen.

Zusammenfassung des Vergleichs der Codebeispiele

Itextsharp 1 related to Zusammenfassung des Vergleichs der Codebeispiele

Ausführlichere Beispiele finden Sie unterIronPDF-Beispiele.

Preisgestaltung und Lizenzierung: IronPDF vs. iTextSharp-Bibliothek

IronPDF Preisgestaltung und Lizenzierung

IronPDF hat verschiedene Ebenen und zusätzliche Funktionen für den Erwerb einer Lizenz. Entwickler können auch kaufenIron Suitedie Ihnen Zugriff auf alle Produkte von Iron Software zum Preis von zwei ermöglicht. Wenn Sie noch nicht bereit sind, eine Lizenz zu kaufen, bietet IronPDF einekostenloser Testdie 30 Tage dauert.

  • Unbefristete Lizenzen: Bietet eine Reihe von unbefristeten Lizenzen, je nach Größe Ihres Teams, Ihren Projektanforderungen und der Anzahl der Standorte. Jeder Lizenztyp beinhaltet E-Mail-Support.
  • Lite License: Diese Lizenz kostet $749 und unterstützt einen Entwickler, einen Standort und ein Projekt.

    Mit diesem Codesegment haben wir die Tiger Wikipediawebseite zu PDF mit beiden Bibliotheken.

  • Professional License: Diese Lizenz ist für größere Teams geeignet und unterstützt zehn Entwickler, zehn Standorte und zehn Projekte für $2,999. Sie bietet die gleichen Support-Kanäle wie die vorherigen Stufen, bietet jedoch auch Bildschirmfreigabe-Support.
  • Lizenzgebührenfreie Weiterverteilung: Die Lizenzierung von IronPDF bietet auch eine lizenzgebührenfreie Weiterverteilung gegen einen Aufpreis von $1.999 an.
  • Ununterbrochene Produktunterstützung: IronPDF bietet Zugang zu fortlaufenden Produktaktualisierungen, Sicherheitsfunktionserweiterungen und Unterstützung durch ihr Engineering-Team für entweder $999/Jahr oder einen einmaligen Kauf von $1,999 für eine Abdeckung von 5 Jahren.
  • Iron Suite: Für 1.498 USD erhalten Sie Zugang zu allen Iron Software-Produkten, einschließlich IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint und IronWebScraper.

    Itextsharp 2 related to IronPDF Preisgestaltung und Lizenzierung

iTextSharp-Lizenzierung

  • AGPL-Lizenz: iTextSharp ist kostenlos unter der AGPL erhältlich(Affero General Public License). Diese Lizenz erfordert, dass jede Software, die iTextSharp verwendet, unter der gleichen Lizenz als Open Source zur Verfügung steht, wenn sie weiterverteilt wird.
  • Kommerzielle Lizenz: Für Projekte, die die AGPL-Bedingungen nicht erfüllen, bietet iTextSharp eine kommerzielle Lizenz an, die die Verwendung in proprietärer Software ermöglicht. Die Preise für diese Lizenz basieren auf einem Kostenvoranschlagsmodell und variieren je nach Nutzung und Umfang des Projekts.

Dokumentation und Support: IronPDF vs. iText

IronPDF

  • Umfassende Dokumentation: Ausführliche und benutzerfreundliche Dokumentation, die alle Funktionen des Programms abdeckt.
  • 24/5 Support: Aktiver Ingenieursupport ist verfügbar.
  • Video Tutorials: Schritt-für-Schritt-Videoanleitungen sind auf YouTube verfügbar.
  • Community Forum: Engagierte Community für zusätzliche Unterstützung.
  • Regelmäßige Updates: Monatliche Produktupdates, um die neuesten Funktionen und Sicherheitspatches sicherzustellen.

iTextSharp

  • Dokumentation: iTextSharp bietet eine ausführliche Dokumentation, die die wichtigsten Funktionalitäten abdeckt.
  • Beispiele und Tutorials: Eine Vielzahl von Tutorials und Code-Beispielen helfen Entwicklern bei den ersten Schritten.
  • GitHub: Entwickler können Probleme oder Bugs an das iTextSharp GitHub Repository übermitteln und mit der iTextSharp Community für Support interagieren.
  • Aktualisierungen: Regelmäßige Aktualisierungen werden bereitgestellt, um Funktionen zu verbessern und Fehler zu beheben.

    Weitere Informationen zu IronPDF-Dokumentation und -Support finden Sie unterIronPDF-Dokumentation und dieIron Software YouTube-Kanal.

Schlussfolgerung

BeideIronPDFund iTextSharp sind solide Optionen für die PDF-Bearbeitung in .NET-Projekten. IronPDF zeichnet sich durch seine intuitive Plattformintegration und Funktionen wie HTML-zu-PDF-Konvertierung und erweiterte Sicherheitsoptionen aus. iTextSharp, das auf der Open-Source-Bibliothek iText basiert, bietet unter den AGPL- und kommerziellen Lizenzen eine leistungsfähige und flexible Werkzeugpalette, die es ideal für Projekte macht, die von der Flexibilität der Open-Source profitieren können oder strikte Lizenzkonformität erfordern.

Die Wahl des richtigen Tools hängt von den Lizenzanforderungen Ihres Projekts, den Anforderungen an den technischen Support und den spezifischen Funktionsanforderungen ab. Ob Sie die Einfachheit und umfassende Unterstützung von IronPDF oder die Open-Source-Robustheit von iTextSharp bevorzugen, beide Bibliotheken bieten Entwicklern reichlich Ressourcen zur Verbesserung von PDF-Workflows in ihren Anwendungen.


Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

< PREVIOUS
IronPDF und EvoPdf: Ein Vergleich
NÄCHSTES >
Syncfusion PDF Viewer Vergleich für HTML zu PDF