PRODUKT-VERGLEICHE

Ein Vergleich zwischen IronPDF und iText7

Veröffentlicht 11. August 2024
Teilen Sie:

Einführung

Ein vernünftiges und einfaches Werkzeug zur Bearbeitung von PDFs kann viele Aufgaben und Prozesse bei der Erstellung und Bearbeitung von PDF-Dokumenten rationalisieren. Im .NET-Ökosystem gibt es zwei beliebte Bibliotheken - IronPDF und iText-, die eine PDF-Erstellung ohne Adobe-Abhängigkeiten ermöglichen. Beide verfügen über eine Vielzahl von Funktionen wie Erstellen, Bearbeiten, Konvertieren usw., aber dieser Artikel konzentriert sich auf den Vergleich dieser Bibliotheken auf der Grundlage von drei Kriterien: die Fähigkeit der Funktionen, die sie zu bieten haben, die Qualität der von ihnen zur Verfügung gestellten Dokumentation, die Preispolitik, die von diesen Unternehmen für die Nutzung ihrer Produkte.

Überblick über IronPDF und iText

IronPDF ist eine bekannte .NET PDF-Bibliothek, die es Programmierern ermöglicht, PDF-Dokumente auf einfache Weise zu erstellen, zu ändern und mit ihnen zu interagieren. Es kann in verschiedenen .NET-Umgebungen verwendet werden, einschließlich Core, 8, 7, 6 und Framework, was es für verschiedene Entwicklungsanforderungen sehr flexibel macht. Das Hauptmerkmal von IronPDF ist sein reichhaltiger Funktionsumfang, wie z. B. die Konvertierung von HTML in PDF, die Möglichkeit, PDFs zusammenzuführen, die PDF-Verschlüsselung und die Anwendung digitaler Signaturen, um nur einige zu nennen. Die Dokumentation ist so geschrieben, dass die Benutzer sie ohne Schwierigkeiten verstehen können, während die Bibliothek selbst über eine starke technische Unterstützung verfügt.

iText ist eine der beliebtesten PDF-Bibliotheken, die sowohl für Java als auch für .NET verfügbar sind (C#). iText Core 8 bietet eine programmierbare Lösung auf Unternehmensebene für die Erstellung und Bearbeitung von PDF-Dateien. iText bietet Unterstützung für viele verschiedene Funktionen und wird sowohl unter Open-Source (AGPL) lizenzen und kommerzielle Lizenzen. Dank seiner Vielseitigkeit kann es eine breite Palette von Anwendungsfällen bei Projekten zur digitalen Transformation abdecken.

Plattformübergreifende Kompatibilität

IronPDF und iText sind mit verschiedenen Plattformen kompatibel; können sie PDFs über viele verschiedene Systeme hinweg und auch innerhalb des .NET-Frameworks verarbeiten. Aus diesem Grund werden wir im Folgenden die unterstützten Frameworks und Plattformen für jedes Produkt vergleichen.

IronPDF:

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

  • .NET-Versionen:

    • (C#, VB.NET, F#)

    • .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

iText

  • .NET-Versionen:

    • .NET Core (2.x, 3.x)

    • .NET-Framework (4.6.1+)
  • .NET 5+
  • Anwendungsumgebungen: iText unterstützt eine Reihe von Anwendungsumgebungen, dank seiner Unterstützung für Java und .NET (C#)dazu gehören; Windows, Mac, Linux und Docker.
  • OS: Läuft auf Windows, macOS und Linux Betriebssystemen

Vergleich der wichtigsten Funktionen: IronPDF vs. iText

IronPDF und iText bieten beide eine Reihe von Funktionen und Werkzeugen, die für die Arbeit mit PDF-Dateien verwendet werden können; im nächsten Abschnitt werden wir uns einige dieser Funktionen genauer ansehen und untersuchen, wie die beiden Bibliotheken bei der Ausführung verschiedener PDF-bezogener Aufgaben im Vergleich 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 der IronPDF-Funktionsseite.

iText

  • 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-Funktionsmerkmale zwischen IronPDF und iText

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#

iText

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. iText verfolgt einen einfachen Ansatz, indem es seine Klasse HtmlConverter verwendet, um PDF-Dokumente aus einer HTML-Datei zu erstellen.

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 iText 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#

iText

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. iText hingegen verwendet eine weniger aufwendige und längere Methode, bei der die PDF-Verschlüsselung bereits bei der Erstellung des Dokuments angewendet wird, wobei Eigentümer- und Benutzerkennwörter sowie Berechtigungen wie Druckrechte unter Verwendung von Verschlüsselungsstandards wie AES-128 festgelegt werden.

PDF-Inhalt redigieren

Gelegentlich kann es im Umgang mit vertraulichen oder privaten Informationen erforderlich sein redigieren teile einer PDF-Datei. Die folgenden Code-Beispiele zeigen, wie Sie mit IronPDF im Vergleich zu iText Text 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#

iText

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.

iText hingegen bietet kein eingebautes Redaktionswerkzeug im gleichen Sinne wie IronPDF. Dennoch können sensible Daten mit der oben gezeigten Methode abgedeckt werden, indem die Inhalte, die der Benutzer unkenntlich machen möchte, überstrichen werden. Dies kann jedoch zu Problemen führen, da diese Rechtecke den Text nicht wirklich entfernen oder richtig schwärzen, was bedeutet, dass andere Personen die Daten, die geschwärzt werden sollen, möglicherweise kopieren und einfügen könnten.

Signieren von PDF-Dokumenten

In der Lage zu sein zeichen digitale Dokumente wie PDF-Dateien zu erstellen und den Prozess zu automatisieren, könnte eine Zeitersparnis bedeuten. Im Folgenden finden Sie einige Codestücke, mit denen Sie vergleichen können, wie sich IronPDF von iText in Bezug auf die Durchführung der digitalen Unterzeichnung von Dokumenten unterscheidet.

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#

iText

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. iText erfordert einen längeren, komplexeren Prozess, um digitale Signaturen auf PDF-Dateien anzuwenden, und obwohl die Möglichkeit, verschiedene Schnittstellenoptionen und Schlüssel zu verwenden, dem Benutzer mehr Kontrolle bietet, könnte die Komplexität, mit der dieses Tool diese Aufgabe ausführt, es behindern.

Wasserzeichen auf PDF-Dokumente anwenden

Die Möglichkeit zum Hinzufügen und Personalisieren wasserzeichen 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 iText 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#

iText

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 iText** zum Hinzufügen von Wasserzeichen zu PDFs erfordert mehr manuelle Arbeit, was den Prozess verlangsamen kann.

Bilder und Text in eine PDF-Datei einfügen

Es gibt Momente, in denen die PDF-Seiten gestempelt mit Inhalt, ähnlich wie man Wasserzeichen auf seine PDF-Dateien anbringen kann. Wir werden nun vergleichen, wie IronPDF und iText das Stempeln von Inhalten in einem PDF-Dokument durchführen.

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#

iText

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));

    Document doc = new Document(pdfDoc);

    // Add stamp (text) to each page
    int numPages = pdfDoc.GetNumberOfPages();
    for (int i = 1; i <= numPages; i++)
    {
        doc.ShowTextAligned(new Paragraph(stampText),
                            36, 36, i, iText.Layout.Properties.TextAlignment.LEFT,
                            iText.Layout.Properties.VerticalAlignment.TOP, 0);
    }

    doc.Close();
}
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));

    Document doc = new Document(pdfDoc);

    // Add stamp (text) to each page
    int numPages = pdfDoc.GetNumberOfPages();
    for (int i = 1; i <= numPages; i++)
    {
        doc.ShowTextAligned(new Paragraph(stampText),
                            36, 36, i, iText.Layout.Properties.TextAlignment.LEFT,
                            iText.Layout.Properties.VerticalAlignment.TOP, 0);
    }

    doc.Close();
}
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 doc As New Document(pdfDoc)

	' Add stamp (text) to each page
	Dim numPages As Integer = pdfDoc.GetNumberOfPages()
	For i As Integer = 1 To numPages
		doc.ShowTextAligned(New Paragraph(stampText), 36, 36, i, iText.Layout.Properties.TextAlignment.LEFT, iText.Layout.Properties.VerticalAlignment.TOP, 0)
	Next i

	doc.Close()
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. iText nutzt seine Bild- und Textstempelwerkzeuge, um den Nutzern mehr Kontrolle über den in ihren PDF-Dateien angezeigten Inhalt 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 wir Umwandlung von DOCX in PDF und vergleichen, wie IronPDF und iText 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#

iText

iText allein kann keine Konvertierung von DOCX in PDF vornehmen; stattdessen ist es auf externe Bibliotheken wie DocX oder Aspose.Words angewiesen

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. iText hingegen ist auf externe Bibliotheken angewiesen, um diese Aufgabe zu bewältigen.

Zusammenfassung des Vergleichs der Codebeispiele

Ausführlichere Beispiele finden Sie unter IronPDF-Beispiele.

Preisgestaltung und Lizenzierung: IronPDF vs. iText-Bibliothek

IronPDF Preisgestaltung und Lizenzierung

IronPDF hat verschiedene Stufen und zusätzliche Funktionen beim Erwerb einer Lizenz. Entwickler können auch kaufen EisenSuite was Ihnen Zugang zu allen Produkten von IronSoftware zum Preis von zwei bietet. Wenn Sie noch nicht bereit sind, eine Lizenz zu kaufen, bietet IronPDF eine kostenloser Test die 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.
  • Plus License: Unterstützung für drei Entwickler, drei Standorte und drei Projekte, dies ist der nächste Schritt nach der Lite License und kostet $1,499. Die Plus License bietet Chat-Unterstützung und Telefon-Support zusätzlich zur grundlegenden E-Mail-Unterstützung.
  • 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.
  • IronSuite: Für $1.498 erhalten Sie Zugriff auf alle Iron Software-Produkte, einschließlich IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint und IronWebScraper.

iText-Lizenzierung

  • AGPL-Lizenz: Die iText Core-Bibliothek ist ein Open-Source-Projekt und steht den Benutzern kostenlos zur Verfügung. Um iText unter diesem Lizenzmodell zu verwenden, müssen die Nutzer die Bedingungen dieser Lizenz einhalten und alle Änderungen an iText, die unter dieser Lizenz vorgenommen werden, müssen auch unter dem AGPL-Lizenzmodell freigegeben werden.
  • Kommerzielle Lizenz: iText bietet ein kommerzielles Lizenzmodell für Entwickler, deren Projekte nicht mit den AGPL-Bedingungen übereinstimmen, und wird über ein angebotsbasiertes Preismodell berechnet.

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.

iText

  • Dokumentation: Ausführliche Dokumentation über die Funktionen der iText-Software.
  • Beispiele und Tutorien: Enthält neben Codebeispielen auch Tutorien zur Verwendung der verschiedenen Funktionen.
  • GitHub: Entwickler können alle Probleme oder Fehler, auf die sie stoßen, einfach an das iText GitHub Repository senden und mit der iText-Gruppe kommunizieren
  • Aktualisierungen: iText bietet regelmäßige Aktualisierungen und Verbesserungen.

    Weitere Informationen zu IronPDF-Dokumentation und -Support finden Sie unter IronPDF-Dokumentation und die IronSoftware YouTube-Kanal.

Schlussfolgerung

Im Bereich der PDF-Manipulationstools für .NET bieten sowohl IronPDF als auch iText robuste Funktionen, die auf verschiedene Entwicklungsanforderungen zugeschnitten sind. IronPDF zeichnet sich durch seine unkomplizierte Integration in eine Vielzahl von Plattformen aus, darunter .NET Core, Framework und Standard, sowie durch umfassende Funktionen wie die Konvertierung von HTML in PDF und erweiterte Sicherheitsoptionen. Auf der anderen Seite bietet iText, das für sein Java-Erbe bekannt ist, leistungsstarke Werkzeuge zur PDF-Erzeugung und -Bearbeitung sowohl unter Open-Source- als auch unter kommerziellen Lizenzen an, wobei Vielseitigkeit und Anpassbarkeit im Vordergrund stehen.

Die Wahl zwischen diesen Werkzeugen hängt letztendlich von den Projektanforderungen, den Lizenzierungspräferenzen und dem benötigten technischen Support ab. Egal, ob sie sich für die Einfachheit und Flexibilität von IronPDF oder für die umfangreichen Funktionen der Open-Source-PDF-Bibliothek iText entscheiden, Entwickler verfügen über ausreichend Ressourcen, um PDF-Workflows in ihren Anwendungen effektiv zu optimieren.

< PREVIOUS
Ein Vergleich zwischen IronPDF und Textcontrol
NÄCHSTES >
Ein Vergleich zwischen IronPDF und Winnovative PDF Library for .NET

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >