Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

IronPDF vs. iTextPdf: Ein umfassender Vergleich der .NET PDF-Bibliotheken

IronPDF zeichnet sich durch seine auf Chromium basierende HTML-Rendering-Engine aus und bietet neben der integrierten DOCX-Konvertierung auch volle CSS3- und JavaScript-Unterstützung. Im Gegensatz dazu bietet iTextPdf erweiterte Funktionen für Unternehmen unter AGPL- oder kommerzieller Lizenzierung, benötigt aber externe Abhängigkeiten für moderne Webstandards und die Dokumentenkonvertierung.

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. Im .NET-Ökosystem stechen zwei populäre PDF-Bibliotheken hervor – IronPDF und iTextPdf –, die jeweils effektive Werkzeuge zum Erstellen, Bearbeiten und Verwalten von PDF-Dokumenten bieten. Dieser Artikel bietet einen tiefgehenden Vergleich dieser Bibliotheken basierend auf Funktionsfähigkeiten, Dokumentationsqualität und Preispolitik.

Was sind IronPDF und iTextPdf?

Wie vereinfacht IronPDF die PDF-Entwicklung?

IronPDF ist eine zuverlässige .NET-Bibliothek für die PDF-Verwaltung, die mit verschiedenen .NET-Umgebungen (Core 8, 7, 6, Framework und mehr) kompatibel ist. Es bietet einen kompletten Funktionsumfang , einschließlich HTML-zu-PDF-Konvertierung , Zusammenführung von PDFs , Verschlüsselung und digitale Signaturen . Die Dokumentation von IronPDF ist unkompliziert, und die Benutzer haben Zugang zu zuverlässigem technischem Support. Entwickler finden Lösungen für häufig auftretende Probleme oft in Diskussionen auf Stack Overflow und anderen Plattformen zum Austausch von Quellcode. Die Bibliothek stellt API-Referenzen für detaillierte Implementierungshinweise bereit und unterstützt erweiterte Installationsmethoden über NuGet-Pakete. Für eine schnelle Umsetzung werfen Sie einen Blick in die Schnellstartanleitung und die Installationsübersicht, um zügig loszulegen.

Was macht iTextPdf für Unternehmensanwendungen geeignet?

iTextPdf ist eine fortschrittliche PDF-Bibliothek für Java und .NET (C#), die sich auf die Dokumentenverarbeitung auf Unternehmensebene konzentriert. Es ist sowohl unter AGPL- als auch unter kommerziellen Lizenzen verfügbar und bietet somit Flexibilität für verschiedene Projektanforderungen. iTextPdf ist hochgradig anpassbar und eignet sich daher ideal für komplexe PDF-Aufgaben wie Dokumentenverschlüsselung, digitale Signatur und Formularerstellung. Die Bibliothek ist seit langem ein fester Bestandteil von Unternehmensumgebungen, die umfangreiche PDF-Bearbeitungsfunktionen und die Einhaltung der PDF/A-Standards für Archivierungszwecke erfordern. Organisationen, die die Anforderungen des Section 508 zur Barrierefreiheit erfüllen müssen, entscheiden sich häufig für Lösungen der Enterprise-Klasse, die universelle Barrierefreiheitsstandards unterstützen.

Welche Plattformen werden von IronPDF und iTextPdf unterstützt?

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 Übersicht über die Kompatibilität der einzelnen Bibliotheken.

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

  • .NET-Versionen : Kompatibel mit .NET Core 8, 7, 6, 5, 3.1+, .NET Standard 2.0+, .NET Framework 4.6.2+
  • App-Umgebungen : Funktioniert unter Windows, Linux, Mac, Docker, Azure und AWS Unterstützte IDEs : Microsoft Visual Studio und JetBrains Rider & ReSharper
  • Betriebssysteme & Prozessoren : Windows, Mac, Linux, x64, x86, ARM
  • Mobile Plattformen : Android-Unterstützung über MAUI
  • Containerunterstützung : Remote-Containerbereitstellung für skalierbare Architekturen

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

Wo kann iTextPdf eingesetzt werden?

  • .NET-Versionen : Unterstützt .NET Core 2.x, 3.x, .NET Framework 4.6.1+, .NET 5+
  • App-Umgebungen : Kompatibel mit Windows, macOS, Linux, Docker
  • Unternehmensweite Bereitstellung : Optimiert für Serverumgebungen mit AGPL- oder kommerzieller Lizenzierung.

Was sind die wichtigsten Merkmale von IronPDF im Vergleich zu iTextPdf?

Nachstehend ein detaillierter Vergleich der von jeder Bibliothek bereitgestellten Hauptfunktionen.

Welche Funktionen bietet IronPDF?

  • HTML-zu-PDF-Konvertierung: Unterstützt HTML, CSS, JavaScript und Bilder.
  • PDF-Bearbeitung: PDF-Dokumente teilen, zusammenführen und bearbeiten.
  • Sicherheit: Funktionen zur PDF-Verschlüsselung und -Entschlüsselung.
  • Bearbeitung: Ermöglicht Anmerkungen, Lesezeichen und Gliederungen.
  • Vorlagen: Kopf- und Fußzeilen sowie Seitenzahlen anwenden.
  • Wasserzeichen: Unterstützt Text- und Bildwasserzeichen, die über HTML/CSS gesteuert werden.
  • PDF-Stempel: Fügen Sie Bilder und Textstempel zu PDF-Dateien hinzu.

Weitere Informationen zu den Funktionen von IronPDF finden Sie auf der IronPDF-Funktionsseite . Die Bibliothek unterstützt außerdem das Erstellen von PDFs aus verschiedenen Quellen, das Konvertieren von PDFs zwischen verschiedenen Formaten und das Organisieren von PDFs mit professionellen Werkzeugen.

Welche Enterprise-Funktionen bietet iTextPdf?

  • PDF-Erstellung: Unterstützt das Erstellen von PDF-Dokumenten von Grund auf.
  • Formulare: Bietet die Erstellung und Bearbeitung von PDF-Formularen an.
  • Digitale Signaturen: Signieren von PDF-Dokumenten.
  • Komprimierung: Optimiert die PDF-Dateigröße.
  • Inhaltsextraktion: Extrahiert Text und Bilder aus PDFs.
  • Anpassbarkeit: Hohe Anpassbarkeit für komplexe Projekte.

Wie handhaben die beiden Bibliotheken die HTML-zu-PDF-Konvertierung?

Beide Bibliotheken unterstützen die HTML-zu-PDF-Konvertierung, unterscheiden sich jedoch in Ansatz und Benutzerfreundlichkeit. IronPDF verwendet die Chromium-Rendering-Engine für pixelgenaue Darstellung , während iTextPdf sein pdfHTML-Add-on mit eingeschränkterer CSS-Unterstützung nutzt. IronPDF unterstützt HTML-Dateien , HTML-Strings und URLs als Eingabequellen, einschließlich vollständiger JavaScript-Darstellung . Für komplexe Layouts verarbeitet IronPDF CSS-Bildschirm- und Druckmedientypen und unterstützt benutzerdefinierte Ränder für eine präzise Steuerung.

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

// Render with custom options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var customPdf = renderer.RenderHtmlAsPdf("<h1>Custom Settings</h1>");
customPdf.SaveAs("custom-settings.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");

// Render with custom options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var customPdf = renderer.RenderHtmlAsPdf("<h1>Custom Settings</h1>");
customPdf.SaveAs("custom-settings.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);
        }
    }
}
$vbLabelText   $csharpLabel

IronPDF bietet einen unkomplizierten Ansatz zur HTML-zu-PDF- Konvertierung und unterstützt HTML, CSS und JavaScript. Es konvertiert direkt aus HTML-Zeichenketten oder bindet Assets mit einem optionalen Basispfad ein. Die Bibliothek unterstützt außerdem HTML-ZIP-Dateien für komplexe Projekte und responsives CSS für eine verbesserte Darstellung. Für dynamische Inhalte bietet IronPDF Optionen zur JavaScript-Ausführung und Renderverzögerung , um ein vollständiges Laden der Seite zu gewährleisten. Zu den zusätzlichen Rendering-Funktionen gehören die Steuerung des Ansichtsfensters und benutzerdefinierte Papierformate . iTextPdf erfordert mehr Konfiguration und konzentriert sich hauptsächlich auf dateibasierte Konvertierung mit eingeschränkter Unterstützung moderner Webstandards.

Welche Bibliothek bietet eine bessere PDF-Verschlüsselung?

Verschlüsselung ist unerlässlich, wenn Sicherheit oberste Priorität hat. So handhabt es jede Bibliothek. IronPDF bietet umfassende Sicherheitsfunktionen, einschließlich AES-Verschlüsselung und Berechtigungsverwaltung . Die Bibliothek unterstützt Metadatenverwaltung und -bereinigung zur Entfernung potenziell schädlicher Inhalte.

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.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.Password = "my-password";

// Set owner password for administrative access
pdf.SecuritySettings.OwnerPassword = "owner-password";

// Save with encryption
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.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.Password = "my-password";

// Set owner password for administrative access
pdf.SecuritySettings.OwnerPassword = "owner-password";

// Save with encryption
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();
    }
}
$vbLabelText   $csharpLabel

IronPDF bietet unkomplizierte Verschlüsselung und Kontrolle über Dokumentberechtigungen . Die Bibliothek unterstützt benutzerdefinierte Protokollierung für Sicherheitsüberprüfungen und Lizenzschlüsselverwaltung bei Unternehmenseinsätzen. Zur Verbesserung der Sicherheit bietet IronPDF Optionen zur Versionskontrolle von PDF-Dateien und zur Konfiguration der Registrierung . iTextPdf erfordert eine detaillierte Konfiguration mit Schwerpunkt auf Verschlüsselungsstandards. Für erhöhte Sicherheitsanforderungen unterstützt IronPDF auch digitale Signaturen mit HSM für Unternehmensanforderungen und Kerberos-Authentifizierung für sichere Umgebungen.

Wie handhaben IronPDF und iTextPdf die Schwärzung von Inhalten?

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 bietet umfassende Schwärzungsfunktionen und PDF-Bereinigung zur Entfernung potenziell schädlicher Inhalte. Die Bibliothek bietet außerdem eine PDF-Reduzierung , um Formulare und Anmerkungen in statischen Inhalt umzuwandeln.

IronPDF

using IronPdf;

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

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

// Redact specific text on specific pages
pdf.RedactTextOnPage(0, "confidential");

// Use regular expressions for pattern matching
pdf.RedactTextOnAllPages(@"\b\d{3}-\d{2}-\d{4}\b"); // Redact SSN pattern

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

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

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

// Redact specific text on specific pages
pdf.RedactTextOnPage(0, "confidential");

// Use regular expressions for pattern matching
pdf.RedactTextOnAllPages(@"\b\d{3}-\d{2}-\d{4}\b"); // Redact SSN pattern

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();
        }
    }
}
$vbLabelText   $csharpLabel

IronPDF bietet ein praktisches Schwärzungswerkzeug , mit dem sich sensible Texte auf allen Seiten problemlos ausblenden lassen. Die Bibliothek bietet außerdem Funktionen zum Ersetzen von Texten , um Dokumentinhalte zu aktualisieren, sowie Zugriff auf das PDF-DOM für detaillierte Inhaltsmanipulationen. Zum Extrahieren von Inhalten vor der Schwärzung können Sie die Text- und Bildextraktion nutzen oder PDF-Dateien programmatisch analysieren . iTextPdf erfordert die manuelle Definition und Anwendung schwarzer Rechtecke zum Abdecken sensibler Bereiche. Für eine vollständige Dokumentenbereinigung bietet IronPDF außerdem PDF- Bereinigungsfunktionen zum Entfernen potenziell schädlicher Inhalte sowie eine PDF-Reduzierung , um interaktive Elemente in statische Inhalte umzuwandeln.

Welche Bibliothek vereinfacht digitale Signaturen?

Die Automatisierung der PDF-Dokumentsignatur kann viel Zeit sparen. Hier ist ein Vergleich, wie IronPDF und iTextPdf die digitale Signatur handhaben. IronPDF unterstützt verschiedene Signaturmethoden , darunter zertifikatsbasierte Signaturen und HSM-Integration . Die Bibliothek speichert außerdem eine Revisionshistorie , um Dokumentänderungen und die Gültigkeit von Signaturen nachzuverfolgen.

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)
{
    SigningContact = "support@ironsoftware.com",
    SigningLocation = "Chicago, USA",
    SigningReason = "Document Approval"
};

// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);

// Apply timestamp
var timestampedSig = new PdfSignature(cert)
{
    TimestampHashAlgorithm = TimestampHashAlgorithm.SHA256,
    TimeStampUrl = "___PROTECTED_URL_245___"
};

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)
{
    SigningContact = "support@ironsoftware.com",
    SigningLocation = "Chicago, USA",
    SigningReason = "Document Approval"
};

// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);

// Apply timestamp
var timestampedSig = new PdfSignature(cert)
{
    TimestampHashAlgorithm = TimestampHashAlgorithm.SHA256,
    TimeStampUrl = "___PROTECTED_URL_245___"
};

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

IronPDF bietet mit X509-Zertifikaten einen unkomplizierten und effizienten Ansatz zum Anbringen digitaler Signaturen an PDF-Dateien. Die API vereinfacht die Integration, ohne die Sicherheitskontrolle zu beeinträchtigen. IronPDF unterstützt außerdem die Versionsverlaufsverfolgung zur Wahrung der Dokumentintegrität sowie verschiedene Signaturtypen, einschließlich visueller Signaturen. Die Bibliothek integriert sich mit HSM-Geräten für verbesserte Sicherheit und unterstützt die Zertifikatsvalidierung . Für sichere Dokumentenworkflows sollten Sie die Funktionen zum Signieren und Sichern von PDFs erkunden. Der Signaturprozess von iTextPdf bietet mehr Anpassungsmöglichkeiten, erfordert jedoch eine komplexe Einrichtung. Entwickler erhalten dadurch detaillierte Kontrolle, müssen sich aber intensiver mit der Zertifikatsverwaltung und der Signaturkonfiguration auseinandersetzen.

Wie fügen die beiden Bibliotheken Wasserzeichen zu PDFs hinzu?

Das Hinzufügen von Wasserzeichen zu PDFs ist unerlässlich für Branding, Vertraulichkeit und Urheberrechtsschutz. Hier erfahren Sie, wie IronPDF und iTextPdf Wasserzeichen auf PDF-Dokumente anwenden. IronPDF bietet flexible Wasserzeichenoptionen mit HTML/CSS-Unterstützung . Die Bibliothek ermöglicht außerdem die Verwendung von Hintergrund- und Vordergrundebenen für komplexe Überlagerungen.

IronPDF

using IronPdf;

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

var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_246___");

// Add text watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

// Add image watermark
pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 45, IronPdf.Editing.VerticalAlignment.Bottom, IronPdf.Editing.HorizontalAlignment.Right);

// Add complex HTML watermark with transparency
string watermarkHtml = @"
<div style='font-size:80px; color:rgba(255,0,0,0.3); font-family:Arial; transform:rotate(-45deg);'>
    CONFIDENTIAL
</div>";
pdf.ApplyWatermark(watermarkHtml, 0, 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("___PROTECTED_URL_246___");

// Add text watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

// Add image watermark
pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 45, IronPdf.Editing.VerticalAlignment.Bottom, IronPdf.Editing.HorizontalAlignment.Right);

// Add complex HTML watermark with transparency
string watermarkHtml = @"
<div style='font-size:80px; color:rgba(255,0,0,0.3); font-family:Arial; transform:rotate(-45deg);'>
    CONFIDENTIAL
</div>";
pdf.ApplyWatermark(watermarkHtml, 0, 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();
    }
}
$vbLabelText   $csharpLabel

Die IronPDF-API ermöglicht das schnelle Anwenden von Wasserzeichen mit flexiblen Anpassungsmöglichkeiten durch HTML und CSS. Dieses Verfahren erzeugt visuell deutlich unterscheidbare Wasserzeichen ohne großen Einrichtungsaufwand. Für mehr Kontrolle unterstützt IronPDF Hintergrund- und Vordergrundebenen für komplexe Dokumentüberlagerungen, mehrere Wasserzeichen und benutzerdefinierte Positionierung . Die Bibliothek bietet außerdem eine Barcode-Integration für Tracking-Zwecke und SVG-Grafikunterstützung für skalierbare Wasserzeichen. Für fortgeschrittene Anforderungen können Sie die Funktionen zum Transformieren von PDF-Seiten sowie zum Zeichnen von Linien und Rechtecken nutzen. iTextPdf ermöglicht durch detaillierte Konfigurationsoptionen eine hochgradig anpassbare Wasserzeichenplatzierung, erfordert jedoch einen höheren Programmieraufwand.### Welche Bibliothek bietet eine bessere Bild- und Textstempelung?

Das Hinzufügen von Inhalten zu PDFs ähnelt dem Anbringen von Wasserzeichen, konzentriert sich aber auf das Hinzufügen spezifischer Elemente wie Bilder oder Texte zu Kennzeichnungs- oder Brandingzwecken. So erledigen IronPDF und iTextPdf diese Aufgabe. IronPDF bietet umfangreiche Stempelfunktionen mit flexiblen Positionierungsoptionen . Die Bibliothek unterstützt außerdem das direkte Zeichnen von Text und Bitmaps auf PDF-Seiten.

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,
    HorizontalAlignment = HorizontalAlignment.Center,
    Opacity = 50,
    Rotation = -45
};

// Stamp the text stamper on all pages
pdf.ApplyStamp(textStamper);

// Create HTML stamper for complex layouts
HtmlStamper htmlStamper = new HtmlStamper()
{
    Html = @"<div style='border:2px solid red; padding:10px;'>
             <h3>APPROVED</h3>
             <p>Date: " + DateTime.Now.ToShortDateString() + @"</p>
             </div>",
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Width = 200,
    Height = 100
};

pdf.ApplyStamp(htmlStamper);

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("___PROTECTED_URL_247___"))
{
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left,
    MaxWidth = new Length(150),
    MaxHeight = new Length(150)
};

// Stamp the image stamper on specific pages
pdf.ApplyStamp(imageStamper, new[] { 0, 2, 4 });

pdf.SaveAs("stamped.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,
    HorizontalAlignment = HorizontalAlignment.Center,
    Opacity = 50,
    Rotation = -45
};

// Stamp the text stamper on all pages
pdf.ApplyStamp(textStamper);

// Create HTML stamper for complex layouts
HtmlStamper htmlStamper = new HtmlStamper()
{
    Html = @"<div style='border:2px solid red; padding:10px;'>
             <h3>APPROVED</h3>
             <p>Date: " + DateTime.Now.ToShortDateString() + @"</p>
             </div>",
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Width = 200,
    Height = 100
};

pdf.ApplyStamp(htmlStamper);

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("___PROTECTED_URL_247___"))
{
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left,
    MaxWidth = new Length(150),
    MaxHeight = new Length(150)
};

// Stamp the image stamper on specific pages
pdf.ApplyStamp(imageStamper, new[] { 0, 2, 4 });

pdf.SaveAs("stamped.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();
}
$vbLabelText   $csharpLabel

Die Bild- und Textstempelmethoden von IronPDF sind unkompliziert und vielseitig und ermöglichen das einfache Hinzufügen von Markeninhalten oder Etiketten zu PDF-Seiten. Die API verwendet vertraute HTML/CSS-Styling-Elemente zur einfachen Anpassung. Für komplexe Stempelanforderungen bietet IronPDF effiziente Unterstützung für mehrere Stempel , die Integration von Google Fonts und Webfonts . Die Bibliothek ermöglicht außerdem das direkte Zeichnen von Text und Bitmaps auf PDFs und unterstützt das Stempeln von Barcodes zur Bestandsverfolgung. Für eine präzise Steuerung sollten Sie die Funktionen "PDF-Objekte übersetzen" und "PDF-Objekte skalieren" nutzen. iTextPdf bietet auch Bild- und Textstempelfunktionen, allerdings erfordert die Konfiguration einen höheren manuellen Aufwand und Kenntnisse der PDF-Layoutstruktur. Die Möglichkeit, Inhalte direkt auf PDF-Seiten zu bearbeiten, bietet zuverlässige Stempelwerkzeuge, allerdings erfordert die Einrichtung von iTextPdf mehr Aufwand.

Können beide Bibliotheken DOCX in PDF konvertieren?

In manchen Projekten ist die Konvertierung von DOCX-Dateien in das PDF-Format erforderlich. Im Folgenden werden die Vorgehensweise von IronPDF und iTextPdf bei dieser Aufgabe verglichen und ihre Unterschiede hervorgehoben. IronPDF bietet eine native DOCX-zu-PDF-Konvertierung sowie Unterstützung für andere Formate, einschließlich RTF-Dokumente .

IronPDF

using IronPdf;

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

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

// Advanced rendering with options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;

// Handle mail merge
var mergeFields = new Dictionary<string, string>
{
    ["Name"] = "John Doe",
    ["Date"] = DateTime.Now.ToShortDateString()
};
PdfDocument mergedPdf = renderer.RenderDocxAsPdf("template.docx", mergeFields);

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

// Advanced rendering with options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;

// Handle mail merge
var mergeFields = new Dictionary<string, string>
{
    ["Name"] = "John Doe",
    ["Date"] = DateTime.Now.ToShortDateString()
};
PdfDocument mergedPdf = renderer.RenderDocxAsPdf("template.docx", mergeFields);

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
$vbLabelText   $csharpLabel

iTextPdf

Im Gegensatz zu IronPDF bietet iTextPdf keine integrierte Unterstützung für die Konvertierung von DOCX in PDF. Um diese Konvertierung durchzuführen, müssen Entwickler auf Drittanbieterbibliotheken wie DocX oder Aspose.Words zurückgreifen, um die DOCX-Datei zunächst in ein PDF-kompatibles Format zu konvertieren und sie dann mit iTextPdf zu verarbeiten oder zu modifizieren.

IronPDF bietet eine unkomplizierte, integrierte Lösung für die DOCX-zu-PDF-Konvertierung , wodurch die Notwendigkeit zusätzlicher Bibliotheken entfällt. Dadurch eignet es sich hervorragend für Entwickler, die eine schnelle, integrierte Konvertierung benötigen. IronPDF unterstützt außerdem die Konvertierung von RTF zu PDF für ältere Dokumentformate, von Markdown zu PDF für Dokumentationsworkflows, von XML zu PDF für strukturierte Daten sowie die Konvertierung von Bildern zu PDF einschließlich der Unterstützung von TIFF-Dateien mit mehreren Einzelbildern . Für eine verbesserte Dokumentenverarbeitung sollten Sie die Serienbrieffunktionen und die Generierung von Inhaltsverzeichnissen nutzen. Im Gegensatz dazu ist iTextPdf für die DOCX-Konvertierung auf externe Bibliotheken angewiesen, was zusätzlichen Aufwand und Abhängigkeiten erfordert und die Projektkomplexität erhöht.

Wie gut unterstützen IronPDF und iTextPdf Bootstrap und modernes CSS?

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. Das Verständnis von HTML-zu-PDF-Seitenumbrüchen und die Berücksichtigung von Responsive Design sind für professionelle Ergebnisse unerlässlich. Für bessere Ergebnisse verwenden Sie CSS-Medientypen und benutzerdefinierte Rendering-Verzögerungen .

Unterstützt IronPDF moderne CSS-Frameworks?

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

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

Praxisbeweis: IronPDF rendert die Bootstrap-Homepage und alle offiziellen Beispiele pixelgenau dank seiner responsiven CSS-Funktionen . Die Bibliothek unterstützt außerdem benutzerdefinierte Papierformate und die Steuerung des Ansichtsfensters für eine verbesserte Layoutdarstellung. Bei komplexen Layouts sollten Sie Rendering-Optionen und Einstellungen zur Seitenausrichtung verwenden. Die Bibliothek unterstützt internationale Sprachen und UTF-8 für globale Anwendungen.

Welche CSS-Beschränkungen hat iTextPdf?

iTextPDF verwendet pdfHTML mit selektiver CSS3-Unterstützung:

  • Eingeschränkte Flexbox-Unterstützung: Hinzugefügt in Version 7.1.15, aber unvollständig
  • Kein CSS Grid: Grid-basierte Bootstrap-Layouts werden nicht unterstützt.
  • Einschränkungen von Bootstrap 3: Moderne Bootstrap 4/5-Komponenten erfordern Workarounds
  • Manuelle Layoutkonvertierung: Komplexe Layouts erfordern oft PDF-spezifischen Code.

In der Dokumentation von iTextPdf wird ausdrücklich darauf hingewiesen, dass fortgeschrittene CSS-Funktionen möglicherweise nicht wie erwartet dargestellt werden, weshalb Entwickler jede Bootstrap-Komponente testen und häufig vereinfachte Layouts erstellen müssen.

Auswirkungen auf die Entwicklung: Die Teams müssen entweder einen separaten Layoutcode für die PDF-Generierung pflegen oder Bootstrap-Komponenten umfassend testen und modifizieren, was die Entwicklungszeit verlängert und die Designkonsistenz verringert.

Eine vollständige Anleitung zum Bootstrap-Framework und den CSS3-Rendering-Funktionen finden Sie im Bootstrap & Flexbox CSS Guide . Zu den weiteren Ressourcen gehören Tipps zur pixelgenauen Formatierung , zur Schriftverwaltung und Lösungen für das Schriftkerning, um eine konsistente Typografie zu gewährleisten. Für Webanwendungen sollten Sie die Konvertierung von ASPX zu PDF und die PDF-Generierungsfunktionen von Angular.js erkunden.

Was verraten uns die Codebeispiele über IronPDF im Vergleich zu iTextPdf?

! Vergleichstabelle der Funktionen der IronPDF- und iTextPDF-Bibliotheken, die die Möglichkeiten zur PDF-Bearbeitung einschließlich HTML-Konvertierung, Verschlüsselung, Schwärzung, Signaturen, Wasserzeichen, Stempelung und DOCX-Unterstützung aufzeigt.

Für detailliertere Beispiele besuchen Sie IronPDF Examples oder erkunden Sie die Codebeispielbibliothek . Im Demo-Bereich finden Sie interaktive Beispiele für die Funktionen von IronPDF. Zu den zusätzlichen Ressourcen gehören die parallele PDF-Generierung , die Verarbeitung mit mehreren Threads und asynchrone Beispiele für Hochleistungsanwendungen.

Wie unterscheiden sich IronPDF und iTextPdf hinsichtlich Preisgestaltung und Lizenzierung?

Welche Preisoptionen bietet IronPDF an?

IronPDF bietet verschiedene Lizenzstufen und Zusatzfunktionen an. Entwickler können auch die Iron Suite erwerben, die ihnen Zugriff auf alle IronSoftware-Produkte zum Preis von zwei Produkten bietet. Falls Sie noch nicht bereit sind, eine Lizenz zu erwerben, bietet IronPDF eine kostenlose Testversion mit vollem Funktionsumfang zur Evaluierung an. Auf der Lizenzseite finden Sie alle Details zu den verfügbaren Optionen. Für Unternehmenseinsätze sollten Sie die Lizenzschlüsselverwaltung und die programmatische Festlegung von Lizenzschlüsseln in Betracht ziehen.

  • 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-Preisvergleich mit drei unbefristeten Lizenzstufen (Lite, Plus, Professional) von 749 $ bis 2.999 $, sowie einem Bundle-Angebot für die Iron Suite mit 9 Produkten zum Preis von 2.

Wie handhabt iTextPdf die Lizenzierung?

  • AGPL-Lizenz: Die iTextPDF Core-Bibliothek ist Open Source und unterliegt der AGPL-Lizenz, die unter bestimmten Bedingungen kostenlos nutzbar ist. 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 auf Basis eines Angebotsmodells an.

Informationen zu Lizenz-Upgrades und -Umstellungen finden Sie unter IronPDF Lizenz-Upgrades . Der Leitfaden zur Lizenzschlüsselanwendung hilft bei der Implementierung, und die Lizenzschlüsselkonfiguration bietet Bereitstellungsoptionen. Informationen zur Fehlerbehebung bei Lizenzierungsproblemen finden Sie unter "Verbindung zum Lizenzserver nicht möglich" und "Lizenzierungserweiterungen" .

Welche Dokumentation und welchen Support bieten IronPDF und iTextPdf an?

  • Umfassende Dokumentation: Eine ausführliche und benutzerfreundliche Dokumentation, die alle Funktionen abdeckt.
  • 24/5 Support: Aktiver Ingenieurssupport ist verfügbar.
  • Videoanleitungen: Schritt-für-Schritt-Videoanleitungen sind auf YouTube verfügbar.
  • Community-Forum: Engagierte Community für zusätzlichen Support.
  • Regelmäßige Updates: Monatliche Produktupdates, um sicherzustellen, dass die neuesten Funktionen und Sicherheitspatches vorhanden sind.

  • Vollständige Dokumentation : Ausführliche, benutzerfreundliche Dokumentation, die alle Funktionen abdeckt.
  • Support rund um die Uhr (24/5) : Aktiver technischer Support verfügbar
  • Video-Tutorials : Schritt-für-Schritt-Videoanleitungen auf YouTube
  • Community-Forum : Engagierte Community für zusätzliche Unterstützung über Stack Overflow und GitHub
  • Regelmäßige Updates : Monatliche Produktaktualisierungen gewährleisten die neuesten Funktionen und Sicherheitspatches.
  • Codebeispiele : Umfangreiche Codebeispielbibliothek mit praktischen Implementierungen
  • Leitfäden zur Fehlerbehebung : Ausführliche Anleitungen zur schnellen Fehlerbehebung und für plattformspezifische Probleme

Für eine detaillierte Fehlerbehebung bietet IronPDF Anleitungen für häufig auftretende Probleme wie AWS-Bereitstellung , Azure-Konfiguration , Speicherverwaltung , Docker-Integration , IIS-Einrichtung und Leistungsoptimierung . Plattformspezifische Leitfäden decken die Bereitstellung unter Windows , die Konfiguration unter Linux und die Unterstützung für macOS ab. Zu den zusätzlichen Ressourcen gehören Anleitungen für technische Anfragen , Azure-Protokollverwaltung , AWS-Protokolldateien und Informationen zu Sicherheitslücken (CVE) .

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

Weitere Informationen zur IronPDF-Dokumentation und zum Support finden Sie in der IronPDF-Dokumentation und auf dem IronSoftware-YouTube-Kanal . Entdecken Sie Anleitungen für spezifische Funktionen, die API-Referenz für eine detaillierte Implementierung und Tutorials für ein umfassendes Verständnis. Das VB.NET PDF-Tutorial und der F# PDF-Bibliotheksleitfaden bieten sprachspezifische Ressourcen. Für moderne Anwendungsframeworks sollten Sie sich das Blazor-Tutorial , die PDF-Anzeige mit MAUI und die XAML-zu-PDF-Konvertierung ansehen. ## Welche PDF-Bibliothek sollten erfahrene .NET-Entwickler wählen?

Im Bereich der PDF-Bearbeitungswerkzeuge für .NET bieten sowohl IronPDF als auch iTextPdf wertvolle Lösungen für Entwickler. IronPDF zeichnet sich durch seine unkomplizierte Integration auf .NET-Plattformen und benutzerfreundliche Funktionen wie die Konvertierung von DOCX in PDF ohne externe Abhängigkeiten aus. Für anspruchsvolle Rendering-Anforderungen bietet IronPDF Unterstützung für JavaScript-Ausführung , WebGL und benutzerdefinierte Renderverzögerungen für dynamische Inhalte. Die Bibliothek beinhaltet außerdem JavaScript-Nachrichten-Listener und benutzerdefinierte JavaScript-Ausführung für interaktive PDFs. Für die Bewältigung komplexer Rendering-Szenarien sollten Sie Netzwerk-Leerlaufwartezeiten , die Konfiguration der Renderverzögerung und die anfängliche Renderoptimierung untersuchen. Im Gegensatz dazu ist iTextPdf für seine Vielseitigkeit und seinen großen Funktionsumfang bekannt und bleibt besonders in Kombination mit anderen Tools effektiv, obwohl für die DOCX-Konvertierung zusätzliche Abhängigkeiten erforderlich sind.

Zur Leistungssteigerung bietet IronPDF asynchrone Verarbeitung , parallele Generierung und Multithreading-Unterstützung, um große Mengen an PDF-Operationen effizient zu bewältigen. Die Bibliothek bietet außerdem erweiterte Funktionen wie PDF-Komprimierung , Linearisierung für schnelles Web-Viewing und PDF/A-Konformität für Archivierungsanforderungen. Zu den zusätzlichen Funktionen für Unternehmen gehören PDF/A-3 mit ZUGFeRD-Unterstützung für die elektronische Rechnungsstellung, PDF/UA-Konformität für Barrierefreiheit und PDF-Versionskontrolle . Für Cloud-Bereitstellungen bietet IronPDF Optionen für eine Remote-Engine , Docker-Container-Unterstützung und einen Vergleich zwischen nativer und Remote-Engine .

Letztendlich hängt die Wahl zwischen IronPDF und iTextPdf von den spezifischen Anforderungen des Projekts, den Lizenzpräferenzen und dem erforderlichen Supportumfang ab. Beide Bibliotheken bieten zuverlässige Möglichkeiten zur Vereinfachung von PDF-Workflows in .NET-Anwendungen. Für Entwickler, die Wert auf moderne Webstandards und Benutzerfreundlichkeit legen, ist IronPDF dank Chrome-basiertem Rendering und umfassender API eine hervorragende Wahl. Die Tutorials der Bibliothek zum Erstellen , Konvertieren und Organisieren von PDFs bieten eine gründliche Anleitung. Für spezielle Dokumentenbearbeitung sollten Sie die Erstellung von PDF-Berichten , das Lesen von PDF-Texten und die PDF-zu-HTML-Konvertierung erkunden. Zu den weiteren Funktionen gehören Papierdruck , Unterstützung für Netzwerkdrucker , Rasterisierung zu Bildern und Base64-Konvertierung . Für diejenigen, die eine AGPL-Lizenz benötigen oder umfangreiche PDF-Manipulationen auf niedriger Ebene durchführen müssen, könnte iTextPdf besser geeignet sein.

Für einen weiteren Vergleich mit anderen PDF-Bibliotheken sollten Sie Aspose vs. IronPDF , Apryse vs. IronPDF , QuestPDF vs. IronPDF und Syncfusion vs. IronPDF vergleichen, um eine fundierte Entscheidung für Ihre PDF-Entwicklungsanforderungen zu treffen. Hinweise zur Bereitstellung finden Sie unter IronPDF-Installationsoptionen , Software-Installationsintegration und Best Practices für die Bereitstellung . Die Meilensteine der Bibliothek unterstreichen die laufenden Verbesserungen, darunter Optimierungen der Chrome-Darstellung , Kompatibilitätsaktualisierungen , PDFium DOM-Aktualisierungen und Stabilitätsverbesserungen .

Hinweis:iTextPdf ist eine eingetragene Marke des jeweiligen Inhabers. Diese Website steht in keiner Verbindung zu iTextPdf, wird weder von iTextPdf unterstützt noch gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

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 die Unterzeichnung 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