Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

Ein Vergleich zwischen IronPDF und ITextPDF

Für Entwickler, die mit PDFs arbeiten, ist es unerlässlich, über eine zuverlässige Bibliothek für die PDF-Erstellung und -Bearbeitung zu verfügen. In der .NET-Umgebung heben sich zwei beliebte PDF-Bibliotheken hervor – IronPDF und iTextPdf –, die jeweils leistungsstarke Werkzeuge zur Erstellung, Bearbeitung und Verwaltung von PDF-Dokumenten bieten. Dieser Artikel bietet einen tiefgehenden Vergleich dieser Bibliotheken basierend auf Funktionsfähigkeiten, Dokumentationsqualität und Preispolitik.

Überblick über IronPDF und iTextPdf

IronPDF

IronPDF ist eine robuste .NET-Bibliothek für die PDF-Verwaltung, die mit verschiedenen .NET-Umgebungen (Core 8, 7, 6, Framework und mehr) kompatibel ist. Es bietet einen umfassenden Funktionsumfang, einschließlich HTML-zu-PDF-Konvertierung, PDF-Zusammenführung, Verschlüsselung und digitalen Signaturen. Die Dokumentation von IronPDF ist unkompliziert, und Benutzer haben Zugang zu zuverlässigem technischem Support. Entwickler finden oft Lösungen für gängige Probleme durch Diskussionen auf Stack Overflow und andere Plattformen zum Teilen von Quellcode.

iTextPdf

iTextPdf ist eine fortschrittliche PDF-Bibliothek für Java und .NET (C#) aus der iText-Bibliothek mit Fokus auf dokumentenverarbeitung auf Unternehmensebene. Es ist sowohl unter AGPL- als auch kommerziellen Lizenzen verfügbar, was Flexibilität für eine Vielzahl von Projekten bietet. Die iText-Software, wie iTextPdf, ist hochgradig anpassbar, was sie ideal für komplexe PDF-Aufgaben wie Dokumentenverschlüsselung, digitales Signieren und Formularerstellung macht.

Plattformübergreifende Kompatibilität

Sowohl IronPDF als auch iTextPdf unterstützen plattformübergreifende Funktionalität und machen sie vielseitig für verschiedene Anwendungsanforderungen innerhalb von .NET. Hier ist eine Aufschlüsselung der Kompatibilität jeder Bibliothek.

IronPDF

  • .NET-Versionen: Kompatibel mit .NET Core (8, 7, 6, 5, 3.1+), .NET Standard (2.0+) und .NET Framework (4.6.2+).
  • App-Umgebungen: Funktioniert nahtlos in Windows-, Linux-, Mac-, Docker-, Azure- und AWS-Umgebungen.
  • Unterstützte IDEs: Funktioniert gut mit Microsoft Visual Studio und JetBrains Rider & ReSharper.
  • Betriebssysteme & Prozessoren: Unterstützt Windows, Mac, Linux, x64, x86, ARM.

iTextPdf

  • .NET-Versionen: Unterstützt .NET Core (2.x, 3.x), .NET Framework (4.6.1+) und .NET 5+.
  • App-Umgebungen: Kompatibel mit Windows, macOS, Linux und Docker.

Vergleich der wichtigsten Funktionen: IronPDF vs. iTextPdf

Nachstehend ein detaillierter Vergleich der von jeder Bibliothek bereitgestellten Hauptfunktionen.

IronPDF

  • HTML-zu-PDF-Konvertierung: Unterstützt HTML, CSS, JavaScript und Bilder.
  • PDF-Bearbeitung: Aufteilen, Zusammenführen und Bearbeiten von PDF-Dokumenten.
  • Sicherheit: PDF-Verschlüsselungs- und Entschlüsselungsfunktionen.
  • Bearbeitung: Ermöglicht Anmerkungen, Lesezeichen und Umrisse.
  • Vorlagen: Anwenden von Kopf- und Fußzeilen sowie Seitenzahlen.
  • Wasserzeicheneinfügung: Unterstützt Text- und Bildwasserzeichen mit HTML/CSS für die Steuerung.
  • PDF-Stempel: Fügt Bilder und Textstempel auf PDF-Dateien hinzu.

Für weitere Informationen über das umfangreiche Funktionsangebot von IronPDF besuchen Sie die IronPDF-Funktionsseite.

iTextPdf

  • PDF-Erstellung: Unterstützt die Erstellung von PDF-Dokumenten von Grund auf.
  • Formulare: Bietet Erstellung und Bearbeitung von PDF-Formularen.
  • Digitale Signaturen: Signiert PDF-Dokumente.
  • Kompression: Optimiert die PDF-Dateigrößen.
  • Inhaltsextraktion: Extrahiert Text und Bilder aus PDFs.
  • Anpassbarkeit: Hohe Anpassbarkeit für komplexe Projekte.

Vergleich der PDF-Funktionalität: IronPDF vs. iTextPdf

HTML-zu-PDF-Konvertierung

Beide Bibliotheken unterstützen die HTML-zu-PDF-Konvertierung, unterscheiden sich jedoch in Ansatz und Benutzerfreundlichkeit.

IronPDF

using IronPdf;

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

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

// Advanced example with external assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

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

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

// Advanced example with external assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Instantiate the renderer
Private renderer = New ChromePdfRenderer()

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

' Advanced example with external assets
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

iTextPdf

using iText.Html2pdf;
using System.IO;

public class HtmlToPdf
{
    public static void ConvertHtmlToPdf()
    {
        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;
using System.IO;

public class HtmlToPdf
{
    public static void ConvertHtmlToPdf()
    {
        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
Imports System.IO

Public Class HtmlToPdf
	Public Shared Sub ConvertHtmlToPdf()
		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
End Class
$vbLabelText   $csharpLabel

IronPDF bietet einen unkomplizierten Ansatz für die HTML-zu-PDF Konvertierung, einschließlich der Unterstützung für HTML, CSS und JavaScript. Es ermöglicht Benutzern, direkt von HTML-Strings zu konvertieren oder Assets mit einem optionalen Basispfad einzuschließen. iTextPdf, zwar effektiv, benötigt eine etwas umfangreichere Einrichtung und fokussiert sich stärker auf dateibasierte Konvertierung.

PDF-Dateien verschlüsseln

Verschlüsselung ist in Szenarien wichtig, in denen Sicherheit von größter Bedeutung ist. So geht jede Bibliothek damit um.

IronPDF

using IronPdf;

// Load an encrypted PDF or create a new one
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Set document security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;

// Load an encrypted PDF or create a new one
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Set document security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf

' Load an encrypted PDF or create a new one
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Set document security settings
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

iTextPdf

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

public class EncryptPdf
{
    public static readonly string DEST = "encrypt_pdf.pdf";
    public static readonly string OWNER_PASSWORD = "World";
    public static readonly string USER_PASSWORD = "Hello";

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

public class EncryptPdf
{
    public static readonly string DEST = "encrypt_pdf.pdf";
    public static readonly string OWNER_PASSWORD = "World";
    public static readonly string USER_PASSWORD = "Hello";

    protected void ManipulatePdf(string dest)
    {
        PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest,
            new WriterProperties().SetStandardEncryption(
                Encoding.UTF8.GetBytes(USER_PASSWORD),
                Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                EncryptionConstants.ALLOW_PRINTING,
                EncryptionConstants.ENCRYPTION_AES_128)));
        document.Close();
    }
}
Imports iText.Kernel.Pdf
Imports System.Text

Public Class EncryptPdf
	Public Shared ReadOnly DEST As String = "encrypt_pdf.pdf"
	Public Shared ReadOnly OWNER_PASSWORD As String = "World"
	Public Shared ReadOnly USER_PASSWORD As String = "Hello"

	Protected Sub ManipulatePdf(ByVal dest As String)
		Dim document As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter(dest, (New WriterProperties()).SetStandardEncryption(Encoding.UTF8.GetBytes(USER_PASSWORD), Encoding.UTF8.GetBytes(OWNER_PASSWORD), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128)))
		document.Close()
	End Sub
End Class
$vbLabelText   $csharpLabel

Die Methode von IronPDF ist benutzerfreundlicher und bietet eine einfache Verschlüsselung und Kontrolle über Dokumentberechtigungen. iTextPdf, ebenfalls effektiv, erfordert eine detaillierte Einrichtung mit Fokus auf Verschlüsselungsstandards.

PDF-Inhalt umwandeln

Die Schwärzung von Informationen in PDF-Dateien ist für den Datenschutz und die Sicherheit unerlässlich. Hier wird erklärt, wie jede Bibliothek diese Funktion unterstützt.

IronPDF

using IronPdf;

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

// Redact 'are' from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;

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

// Redact 'are' from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf

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

' Redact 'are' from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
$vbLabelText   $csharpLabel

iTextPdf

using iText.Kernel.Pdf;
using iText.Kernel.Colors;

// Define areas to redact on each page
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) };

// Draw black rectangles to cover sensitive areas
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf")))
{
    for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
    {
        PdfPage page = pdfDoc.GetPage(pageNum);
        PdfCanvas canvas = new PdfCanvas(page);
        foreach (Rectangle rect in rectanglesToRedact)
        {
            canvas.SetFillColor(ColorConstants.BLACK)
                  .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                  .Fill();
        }
    }
}
using iText.Kernel.Pdf;
using iText.Kernel.Colors;

// Define areas to redact on each page
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) };

// Draw black rectangles to cover sensitive areas
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf")))
{
    for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
    {
        PdfPage page = pdfDoc.GetPage(pageNum);
        PdfCanvas canvas = new PdfCanvas(page);
        foreach (Rectangle rect in rectanglesToRedact)
        {
            canvas.SetFillColor(ColorConstants.BLACK)
                  .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                  .Fill();
        }
    }
}
Imports iText.Kernel.Pdf
Imports iText.Kernel.Colors

' Define areas to redact on each page
Private rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) }

' Draw black rectangles to cover sensitive areas
Using pdfDoc As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter("output_redacted.pdf"))
	Dim pageNum As Integer = 1
	Do While pageNum <= pdfDoc.GetNumberOfPages()
		Dim page As PdfPage = pdfDoc.GetPage(pageNum)
		Dim canvas As New PdfCanvas(page)
		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
$vbLabelText   $csharpLabel

IronPDF bietet ein praktisches Schwärzungstool, das sensible Texte auf allen Seiten leicht ausblendet. Im Gegensatz dazu erfordert iTextPdf von den Benutzern, schwarze Rechtecke manuell zu definieren und anzuwenden, um sensible Bereiche zu verdecken.

PDF-Dokumente signieren

Die Automatisierung der Unterzeichnung von PDF-Dokumenten kann erheblich Zeit sparen. Hier ist ein nebeneinander stehender Vergleich, wie IronPDF und iTextPdf digitale Signaturen handhaben.

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")
$vbLabelText   $csharpLabel

iTextPdf

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
$vbLabelText   $csharpLabel

Wenn es darum geht, digitale Signaturen auf PDF-Dateien anzuwenden, bietet IronPDF einen einfachen und effizienten Weg, dies mit X509-Zertifikaten zu erreichen. Sein API vereinfacht den Prozess und ermöglicht eine unkomplizierte Integration in Workflows ohne Einbußen bei der Kontrolle über die Sicherheit der Signatur. Im Vergleich dazu ist der Prozess von iTextPDF zur Dokumentensignierung eine komplexere Einrichtung, bietet jedoch zusätzliche Anpassungsoptionen. Entwickler haben eine feinere Kontrolle, obwohl sie möglicherweise eine steilere Lernkurve bewältigen müssen, während sie sich durch die Signaturkonfiguration und -verwaltung von iTextPDF bewegen.

Wasserzeichen auf PDF-Dokumente anwenden

Das Wasserzeichen von PDFs kann für Branding-, Vertraulichkeits- und Urheberrechtsschutz entscheidend sein. Hier ist, wie IronPDF und iTextPDF Wasserzeichen auf PDF-Dokumente 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")
$vbLabelText   $csharpLabel

iTextPdf

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

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

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

		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
$vbLabelText   $csharpLabel

IronPDFs API ermöglicht eine schnelle und intuitive Wasserzeichenanwendung mit der Flexibilität, HTML und CSS für Anpassungen zu verwenden. Dieser Ansatz ist benutzerfreundlich und erleichtert die Erstellung von optisch unterscheidbaren Wasserzeichen ohne aufwendige Einrichtung. iTextPDF hingegen erlaubt eine hochgradig anpassbare Wasserzeichenplatzierung durch detaillierte Konfigurationsoptionen, erfordert jedoch mehr umfangreiche Programmierarbeit.

Bilder und Text in eine PDF-Datei einfügen

Das Stempeln von Inhalten auf PDFs ähnelt der Wasserzeicheneinfügung, konzentriert sich aber mehr auf das Hinzufügen spezifischer Elemente wie Bilder oder Text für Kennzeichnungs- oder Branding-Zwecke. Hier wird beschrieben, wie IronPDF und iTextPDF diese Aufgabe erfüllen.

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")
$vbLabelText   $csharpLabel

iTextPdf

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
$vbLabelText   $csharpLabel

IronPDFs Bild- und Textstempel -Methoden sind optimiert und vielseitig, sodass Entwickler problemlos gebrandete Inhalte oder Labels auf PDF-Seiten hinzufügen können. Die API nutzt vertraute HTML/CSS-Stilelemente, was die Anpassung einfach macht. iTextPDF bietet ebenfalls Funktionen zur Bild- und Textstempelung, obwohl seine Konfiguration mehr manuelle Einrichtung und Kenntnis der PDF-Layout-Struktur erfordert. Die Fähigkeit, Inhalte direkt auf der PDF-Seite zu manipulieren und zu bearbeiten, bietet Entwicklern robuste Stempelwerkzeuge, obwohl die Einrichtung von iTextPDF möglicherweise mehr Aufwand erfordert.

DOCX in PDF umwandeln

In einigen Projekten müssen DOCX-Dateien in das PDF-Format konvertiert werden. Nachfolgend finden Sie einen Vergleich, wie IronPDF und iText diese Aufgabe handhaben und ihre Unterschiede herausstellen.

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")
$vbLabelText   $csharpLabel

iTextPDF

Im Gegensatz zu IronPDF unterstützt iTextPDF nicht die DOCX-zu-PDF-Konvertierung. Um diese Konvertierung durchzuführen, müssen Entwickler auf Drittanbieter-Bibliotheken wie DocX oder Aspose.Words zurückgreifen, um die DOCX-Datei zunächst in ein PDF-kompatibles Format zu konvertieren, das dann mit iTextPDF weiterverarbeitet oder bearbeitet werden kann.

IronPDF bietet eine unkomplizierte, integrierte Lösung für die DOCX-zu-PDF-Konvertierung, was den Bedarf an zusätzlichen Bibliotheken eliminiert. Dies macht es besonders geeignet für Entwickler, die einen schnellen und integrierten Ansatz benötigen. Im Gegensatz dazu verlässt sich iTextPDF auf externe Bibliotheken, um DOCX-Dateien zu konvertieren, was zusätzliche Einrichtung und Abhängigkeiten erfordert, die die Projektkomplexität erhöhen können.

Unterstützung von Bootstrap und Modern CSS Framework

Bei der PDF-Erzeugung aus Bootstrap-gestylten Webanwendungen stellt die volle Rahmenunterstützung sicher, dass das Design konsistent bleibt, ohne dass parallele CSS-Dateien oder Layout-Änderungen erforderlich sind.

IronPDF: Vollständige Unterstützung des Bootstrap Frameworks

IronPDFs Chromium-Engine bietet vollständige Unterstützung für:

  • Bootstrap 5: Vollständige Flexbox-Layouts, CSS Grid, Dienstprogrammsklassen, alle Komponenten
  • Bootstrap 4: Umfangreiche Kartensysteme, Navigation, Flex-Utilities, responsives Design
  • Tailwind CSS: Alle Dienstprogramms-Klassen mit browsergenauer Darstellung
  • Foundation: Vollständiges Rastersystem und Komponentenbibliothek
  • Modernes CSS3: Flexbox, CSS-Grid, benutzerdefinierte Eigenschaften, Animationen, Übergänge

Praxistauglichkeit: IronPDF rendert die Bootstrap-Homepage und alle offiziellen Beispiele mit pixelgenauer Genauigkeit.

iTextPDF: Eingeschränkte Bootstrap-Unterstützung

iTextPDF verwendet pdfHTML mit selektiver CSS3-Unterstützung:

  • Begrenzte Flexbox-Unterstützung: Hinzugefügt in Version 7.1.15, jedoch unvollständig
  • Kein CSS-Raster: Rasterbasierte Bootstrap-Layouts werden nicht unterstützt
  • Bootstrap 3-Beschränkungen: Moderne Bootstrap 4/5-Komponenten erfordern Umgehungslösungen
  • Manuelle Layoutkonvertierung: Komplexe Layouts benötigen oft PDF-spezifischen Code

Die Dokumentation von iTextPDF besagt ausdrücklich, dass erweiterte CSS-Funktionen möglicherweise nicht wie erwartet angezeigt werden, was von den Entwicklern erfordert, jedes Bootstrap-Komponente zu testen und häufig vereinfachte Layouts zu erstellen.

Entwicklungsfolgen: Teams müssen separate Layout-Code für die PDF-Erzeugung pflegen oder umfangreiche Tests und Modifikationen an Bootstrap-Komponenten durchführen, was die Entwicklungszeit erhöht und die Designkonsistenz reduziert.

  1. Für umfassende Hinweise zum Bootstrap-Framework und CSS3-Wiedergabefähigkeiten siehe die Bootstrap & Flexbox CSS-Anleitung.

Zusammenfassung des Vergleichs der Codebeispiele

Vergleichsbild IronPDF vs iTextPDF

Für detailliertere Beispiele besuchen Sie IronPDF-Beispiele.

Preisgestaltung und Lizenzierung: IronPDF vs. iTextPdf Library

IronPDF Preise und Lizenzierung

IronPDF hat unterschiedliche Stufen und zusätzliche Funktionen für den Erwerb einer Lizenz. Entwickler können auch die [Iron Suite](Iron Suite) kaufen, die Zugriff auf alle Produkte von Iron Software zum Preis von zwei gewährt. Wenn Sie noch nicht bereit sind, eine Lizenz zu kaufen, bietet IronPDF eine kostenlose Testversion an.

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

IronPDF vs iTextPDF Preisbild

iTextPDF-Lizenzierung

  • AGPL-Lizenz: Die iTextPDF-Core-Bibliothek ist unter der AGPL-Lizenz quelloffen, die unter Bedingungen kostenlos genutzt werden kann. Entwickler müssen alle Änderungen unter der gleichen Lizenz veröffentlichen.
  • Kommerzielle Lizenz: Für Entwickler, die die AGPL-Bedingungen nicht erfüllen, bietet iTextPDF eine kommerzielle Lizenzierung durch ein Angebotsmodell an.

Dokumentation und Unterstützung: IronPDF vs. iTextPdf

IronPDF

  • Umfassende Dokumentation: Umfangreiche und benutzerfreundliche Dokumentation, die alle angebotenen Funktionen abdeckt.
  • 24/5 Support: Aktive Ingenieurunterstützung ist verfügbar.
  • Video-Tutorials: Schritt-für-Schritt-Videoleitfäden sind auf YouTube verfügbar.
  • Community-Forum: Engagement der Community für zusätzliche Unterstützung.
  • Regelmäßige Updates: Monatliches Produkt-Updates, um die neuesten Funktionen und Sicherheitspatches zu gewährleisten.

iTextPDF

Die iTextPDF bietet eine robuste Dokumentation und Unterstützung für ihren umfangreichen Funktionsumfang.

  • Dokumentation: Die iText PDF-Dokumentation deckt die verfügbaren Funktionen gründlich ab.
  • Beispiele und Tutorials: Codebeispiele und Tutorials helfen Entwicklern beim Einstieg.
  • GitHub-Community: Entwickler können Probleme melden, Pull-Requests einreichen und mit dem iTextPDF-Team interagieren.
  • Regelmäßige Updates: iTextPDF bietet häufige Updates und Verbesserungen.

Für weitere Details zu IronPDF-Dokumentation und -Support besuchen Sie die IronPDF-Dokumentation und den Iron Software YouTube-Kanal.

Abschluss

Im Bereich der PDF-Manipulationswerkzeuge für .NET bieten sowohl IronPDF als auch iTextPDF starke Lösungen für Entwickler. IronPDF sticht durch seine einfache Integration über .NET-Plattformen und benutzerfreundlichen Funktionen wie DOCX-zu-PDF-Konvertierung ohne externe Abhängigkeiten hervor. Im Gegensatz dazu bleibt iTextPDF, bekannt für seine Vielseitigkeit und reichhaltigen Funktionsumfang, eine leistungsstarke Wahl, insbesondere in Kombination mit anderen Werkzeugen, obwohl zusätzliche Abhängigkeiten für die DOCX-Konvertierung erforderlich sind.

Letztendlich hängt die Wahl zwischen IronPDF und iTextPDF von den spezifischen Anforderungen Ihres Projekts, den Lizenzierungsvorlieben und dem erforderlichen Unterstützungsgrad ab. Beide Bibliotheken bieten zuverlässige Wege zur Rationalisierung von PDF-Workflows in .NET-Anwendungen.

Hinweis:iTextPDF ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Website ist weder mit iTextPDF verbunden, noch gesponsert durch noch befürwortet durch iTextPDF. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie kann ich HTML in PDF in C# konvertieren?

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

Welche Funktionen bietet IronPDF zur Erstellung und Bearbeitung von PDFs?

IronPDF bietet Funktionen wie HTML-zu-PDF-Konvertierung, PDF-Zusammenführung, Verschlüsselung, digitale Signaturen, Wasserzeichen und DOCX-zu-PDF-Konvertierung.

Wie vereinfacht IronPDF das Signieren von PDFs?

IronPDF ermöglicht es Ihnen, digitale Signaturen mittels X509-Zertifikaten auf PDF-Dateien anzuwenden und bietet eine unkomplizierte Methode zur Sicherung Ihrer Dokumente.

Kann IronPDF auf verschiedenen Betriebssystemen verwendet werden?

Ja, IronPDF unterstützt plattformübergreifende Kompatibilität. Es funktioniert nahtlos unter Windows, Linux und Mac und ist kompatibel mit .NET Core, .NET Standard und .NET Framework.

Wie unterscheidet sich iTextPDF in Bezug auf die Dokumentenverschlüsselung von IronPDF?

Während iTextPDF eine detaillierte Einrichtung für Verschlüsselungsstandards bietet, vereinfacht IronPDF den Prozess durch integrierte, leicht umsetzbare Verschlüsselungsmethoden.

Welche Support-Ressourcen stehen IronPDF-Nutzern zur Verfügung?

IronPDF bietet umfangreichen Support durch umfassende Dokumentation, Video-Tutorials, ein Community-Forum und 24/5-Ingenieur-Support.

Wie behandelt IronPDF die DOCX-zu-PDF-Konvertierung?

IronPDF enthält native DOCX-zu-PDF-Konvertierungsfunktionen, die eine nahtlose Integration ohne zusätzliche Bibliotheken ermöglichen.

Welche Lizenzoptionen gibt es für IronPDF?

IronPDF bietet unbefristete Lizenzen mit verschiedenen Stufen wie Lite, Plus und Professional sowie Optionen für lizenzfreie Weiterverteilung und kontinuierlichen Produktsupport.

Wie kann ich Wasserzeichen mit IronPDF auf PDFs anwenden?

Mit IronPDF können Sie Wasserzeichen einfach mit HTML und CSS anwenden, sodass Sie Text- oder Bildwasserzeichen schnell hinzufügen und nach Bedarf anpassen können.

Was macht IronPDF für Entwickler geeignet, die mit .NET-Anwendungen arbeiten?

IronPDF ist mit einer vereinfachten API benutzerfreundlich gestaltet, was es effizient für Aufgaben wie HTML-zu-PDF-Konvertierung, Verschlüsselung und digitale Signatur macht, ideal für .NET-Entwickler.

Curtis Chau
Technischer Autor

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

Weiterlesen
iText Logo

Sind Sie es leid, teure Erneuerungen und veraltete Produktaktualisierungen zu haben?

Machen Sie sich den Umstieg von iText leicht - mit unserer technischen Unterstützung bei der Migration und einem besseren Angebot.

IronPDF Logo