Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE
Ein Vergleich von HTML-zu-PDF in IronPDF vs iText7

Ein Vergleich zwischen IronPDF und iText7

Ein anständiges und einfaches Tool zur Manipulation von PDFs kann viele Aufgaben und Prozesse, die mit der Erstellung und Bearbeitung von PDF-Dokumenten verbunden sind, optimieren. Im .NET-Ökosystem gibt es zwei beliebte Bibliotheken – IronPDF und iText – die die PDF-Generierung ohne Adobe-Abhängigkeiten ermöglichen. Sie bieten beide eine Vielzahl an Funktionen wie Erstellen, Bearbeiten, Konvertieren usw., aber dieser Artikel konzentriert sich auf den Vergleich dieser Bibliotheken anhand von drei Kriterien: die angebotenen Funktionen, die Qualität der von ihnen bereitgestellten Dokumentation und die Preisgestaltung, die diese Unternehmen für die Nutzung ihrer Produkte wählen.

Überblick über IronPDF und iText

IronPDF ist eine prominente .NET-PDF-Bibliothek, die es Programmierern ermöglicht, PDF-Dokumente einfach zu erstellen, zu ändern und mit ihnen zu interagieren. Sie kann in verschiedenen .NET-Umgebungen verwendet werden, einschließlich Core, 8, 7, 6 und Framework, was sie sehr flexibel für verschiedene Entwicklungsanforderungen macht. Die Hauptmerkmale von IronPDF sind eine reiche Funktionspalette, wie die HTML-zu-PDF-Konvertierung, die Möglichkeit, PDFs zu verbinden, PDF-Verschlüsselung und die Anwendung digitaler Signaturen, um nur einige zu nennen. Die Dokumentation ist so geschrieben, dass Benutzer sie ohne Schwierigkeiten verstehen können, während die Bibliothek selbst über einen starken technischen Support verfügt.

iText ist eine der beliebtesten PDF-Bibliotheken, die sowohl für Java als auch .NET (C#) verfügbar ist. iText Core 8 bietet eine Unternehmenslösung zur programmierbaren Erstellung und Manipulation von PDF-Dateien. iText bietet Unterstützung für viele verschiedene Funktionen und wird sowohl unter Open-Source- (AGPL) als auch kommerziellen Lizenzen veröffentlicht. Das bedeutet, dass es dank seiner Vielseitigkeit eine breite Palette von Anwendungsfällen bei digitalen Transformationsprojekten abdecken kann.

Plattformübergreifende Kompatibilität

IronPDF und iText sind mit verschiedenen Plattformen kompatibel; sie können PDFs auf vielen verschiedenen Systemen und innerhalb des .NET-Frameworks verarbeiten. Wir werden die unterstützten Frameworks und Plattformen für jedes Produkt unten vergleichen.

IronPDF:

IronPDF Overview of Supported Platforms unterstützt eine Vielzahl von Plattformen und Umgebungen und sorgt für nahtlose Integration und Bereitstellung in verschiedenen Systemen:

  • .NET-Versionen:

    • .NET Core (8, 7, 6, 5 und 3.1+)
    • .NET Standard (2.0+)
    • .NET Framework (4.6.2+)
  • App-Umgebungen: IronPDF funktioniert in App-Umgebungen wie Windows, Linux, Mac, Docker, Azure und AWS.

  • IDEs: Funktioniert mit IDEs wie Microsoft Visual Studio, JetBrains Rider und ReSharper.

  • Betriebssysteme und Prozessoren: Unterstützt mehrere verschiedene Betriebssysteme & Prozessoren einschließlich Windows, Mac, Linux, x64, x86, ARM.

iText

  • .NET-Versionen:

    • .NET Core (2.x, 3.x)
    • .NET Framework (4.6.1+)
    • .NET 5+
  • App-Umgebungen: iText unterstützt eine Reihe von App-Umgebungen, dank seiner Unterstützung für sowohl Java als auch .NET (C#), diese beinhalten Windows, Mac, Linux und Docker.

  • Betriebssysteme: Läuft auf Windows, macOS und Linux-Betriebssystemen.

Vergleich der wichtigsten Funktionen: IronPDF vs. iText

IronPDF Key Feature List und iText bieten beide eine Reihe von Funktionen und Werkzeugen zur Arbeit mit PDF-Dateien. Der Fokus dieses nächsten Abschnitts liegt darauf, einige dieser Funktionen genauer zu untersuchen und zu sehen, wie die beiden Bibliotheken im Hinblick auf die Durchführung verschiedener PDF-bezogener Aufgaben abschneiden.

IronPDF

  • HTML-zu-PDF-Konvertierung: Unterstützt HTML, CSS, JavaScript und Bilder.

  • PDF-Datei-Manipulation: Dokumente aufteilen und zusammenführen, Formatierung ändern und bestehende PDF-Dokumente bearbeiten.

  • Sicherheit: PDF-Verschlüsselung und -Entschlüsselung.

  • Bearbeitung: Hinzufügen von Anmerkungen, Lesezeichen und Inhaltsverzeichnissen.

  • Vorlagen: Kopf- und Fußzeilen sowie Seitenzahlen anwenden.

  • Wasserzeichen: Einfach Text- und Bildwasserzeichen zu PDF-Dateien hinzufügen; volle Kontrolle mit HTML/CSS gewinnen.

  • PDF-Stempel: Bilder und Text auf Ihre PDF-Dokumente stempeln, indem Sie IronPDF verwenden.

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

iText

  • PDF-Erstellung: Unterstützt das Erstellen von PDF-Dokumenten von Grund auf.

  • Formulare: Erstellen und Bearbeiten von PDF-Formularen.

  • Digitale Signaturen: Signieren von PDF-Dokumenten.

  • Komprimierung: Optimierung der PDF-Dateigrößen.

  • Inhaltextraktion: Extrahieren von Text und Bildern aus PDFs.

  • Open Source: Verfügbar unter AGPL-Lizenz.

  • Anpassungsfähigkeit: Hoher Grad an Anpassung für fortgeschrittene Anwendungsfälle.

Vergleich der PDF-Funktionsmerkmale zwischen IronPDF und iText

HTML-zu-PDF-Konvertierung

Die HTML-Inhalte mit IronPDF in PDFs umwandeln ist eine Aufgabe, die in vielen verschiedenen Büros und Arbeitsbereichen durchgeführt wird. Unten finden Sie Codebeispiele, die zeigen, wie IronPDF und iText diesen Prozess angehen.

IronPDF

using IronPdf;

// Configure security settings
Installation.EnableWebSecurity = true;

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

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

// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Configure security settings
Installation.EnableWebSecurity = true;

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

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

// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS and JavaScript.
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
$vbLabelText   $csharpLabel

iText

using iText.Html2pdf;

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

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

Bei der Konvertierung von HTML in PDF bietet IronPDF ein prägnantes und praktisches Tool für diese Aufgabe. Indem der ChromePdfRenderer verwendet wird, um HTML-Inhalte in PDFs zu konvertieren, zeichnet sich IronPDF bei der Bereitstellung von pixelgenauen PDF-Dokumenten für Benutzer aus. Benutzer können PDFs direkt aus HTML-Strings erstellen oder externe Assets wie Bilder mit einem optionalen Basispfad einbinden, wie im fortgeschrittenen Beispiel gezeigt. iText hingegen nimmt mit seiner HtmlConverter-Klasse einen grundlegenden Ansatz für die Erstellung von PDF-Dokumenten aus einer HTML-Datei.

PDF-Dateien verschlüsseln

Das Verschlüsseln von PDF-Dateien mit IronPDF und die Entschlüsselung sind in vielen Arbeitsumgebungen von entscheidender Bedeutung. Unten werden wir sehen, wie iText und IronPDF die Verschlüsselung von PDFs angehen.

IronPDF

using IronPdf;
using System;

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

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

// Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

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

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

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

// Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
$vbLabelText   $csharpLabel

iText

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

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

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

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

        new EncryptPdf().ManipulatePdf(DEST);
    }

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

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

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

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

        new EncryptPdf().ManipulatePdf(DEST);
    }

    protected void ManipulatePdf(String dest)
    {
        PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
            new WriterProperties().SetStandardEncryption(
                Encoding.UTF8.GetBytes(USER_PASSWORD),
                Encoding.UTF8.GetBytes(OWNER_PASSWORD),
                EncryptionConstants.ALLOW_PRINTING,
                EncryptionConstants.ENCRYPTION_AES_128 | EncryptionConstants.DO_NOT_ENCRYPT_METADATA
            )));
        document.Close();
    }
}
$vbLabelText   $csharpLabel

IronPDF bietet Benutzern eine einfache Möglichkeit, PDF-Dateien zu verschlüsseln und gleichzeitig viel Kontrolle zu geben, wie das Bearbeiten von Metadaten und das Anpassen von Sicherheitseinstellungen, wie das Erstellen von Dokumenten, die nur gelesen werden können, oder das Einschränken von Benutzeraktionen wie Kopieren und Einfügen. Andererseits verwendet iText eine niedrigere und längere Methode, bei der die PDF-Verschlüsselung während der Dokumentenerstellung angewendet wird, indem Eigentümer- und Benutzerpasswörter sowie Berechtigungen wie Druckrechte unter Verwendung von Verschlüsselungsstandards wie AES-128 angegeben werden.

PDF-Inhalt umwandeln

Gelegentlich kann es erforderlich sein, Text in PDF mit IronPDF Teile einer PDF-Datei zu redigieren, während man mit vertraulichen oder privaten Informationen umgeht. Die untenstehenden Codebeispiele zeigen, wie Sie mit IronPDF Text redigieren können, im Vergleich zu iText.

IronPDF

using IronPdf;

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

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

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

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

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

pdf.SaveAs("redacted.pdf");
$vbLabelText   $csharpLabel

iText

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

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

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

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

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

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

        // Overlay black rectangles to simulate redaction
        foreach (Rectangle rect in rectanglesToRedact)
        {
            canvas.SetFillColor(ColorConstants.BLACK)
                .Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
                .Fill();
        }
    }
}
$vbLabelText   $csharpLabel

IronPDF's Redaktionswerkzeug ist knapp und einfach zu verwenden, es braucht nur wenige Zeilen Code, um den Redaktionsprozess zu rationalisieren. Dies hilft, die Effizienz bei PDF-Redaktionsaufgaben zu steigern und gibt Benutzern eine einfache Möglichkeit, ihre sensiblen und privaten Daten sicher zu halten. iText bietet hingegen kein integriertes Redaktionswerkzeug im gleichen Sinne wie IronPDF. Es kann jedoch weiterhin sensible Daten mithilfe der oben gezeigten Methode abdecken, um über Inhalte hinweg zu zeichnen, die Benutzer redigieren möchten. Dies kann zu potenziellen Problemen führen, da diese Rechtecke den Text nicht tatsächlich entfernen oder ordnungsgemäß redigieren, was bedeutet, dass andere Menschen möglicherweise die redigierten Daten kopieren und einfügen könnten.

PDF-Dokumente signieren

Die Möglichkeit, PDF-Dokumente digital mit IronPDF zu signieren, kann Zeit sparen, insbesondere wenn es ein automatisierter Prozess ist. Hier sind einige Codebeispiele, die zeigen, wie sich IronPDF von iText unterscheidet, wenn es um die Durchführung der digitalen Signierung von Dokumenten geht.

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

iText

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

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

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

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

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

                // Create signature
                IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
                signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
            }

            Console.WriteLine($"PDF digitally signed successfully: {dest}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;

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

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

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

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

                // Create signature
                IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
                signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
            }

            Console.WriteLine($"PDF digitally signed successfully: {dest}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
$vbLabelText   $csharpLabel

Beim digitalen Signieren von PDF-Dateien bietet IronPDF ein prägnantes, aber leistungsstarkes Tool, um diesen Prozess abzuschließen. Die Einfachheit ermöglicht es, den Prozess schnell durchzuführen und spart Entwicklern Zeit, die es für ihre Signieranforderungen implementiert haben. iText erfordert einen längeren, komplexeren Prozess, um digitale Signaturen auf PDF-Dateien anzuwenden. Während ihre Fähigkeit, verschiedene Schnittstellenoptionen und Schlüssel zu verwenden, den Benutzern mehr Kontrolle bietet, könnte die Komplexität dieses Tools den Gebrauch behindern.

Wasserzeichen auf PDF-Dokumente anwenden

Die Fähigkeit, Wasserzeichen auf PDFs mit IronPDF hinzuzufügen und zu personalisieren, kann sehr bei der Wahrung von Vertraulichkeit, Urheberrechtsschutz, Branding oder bei jeder Aufgabe im Zusammenhang mit vertraulichen Informationen helfen. Im Folgenden finden Sie einen Vergleich, wie IronPDF und iText Wasserzeichen auf PDF-Dateien anwenden.

IronPDF

using IronPdf;

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

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

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

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

iText

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

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

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

        new TransparentWatermark().ManipulatePdf(DEST);
    }

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

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

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

        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

IronPDF's einfache und intuitive API ermöglicht es Benutzern, benutzerdefinierte Wasserzeichen schnell auf ihre PDF-Dateien anzuwenden und die volle Kontrolle über den Prozess zu erhalten. Durch die Verwendung von HTML/CSS wird der Prozess weiter vereinfacht, ohne die Anpassungskontrolle zu verlieren. iText's Ansatz, Wasserzeichen zu PDFs hinzuzufügen, erfordert mehr manuelle Arbeit, was den Prozess potenziell verlangsamen kann.

Bilder und Text in eine PDF-Datei einfügen

Es gibt Zeiten, in denen PDF-Seiten ähnlich wie bei der Aufnahme von Wasserzeichen mit Text oder Bildern gestempelt werden müssen. Wir werden nun vergleichen, wie IronPDF und iText Inhalte auf ein PDF-Dokument stempeln.

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

iText

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

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

    Document doc = new Document(pdfDoc);

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

    doc.Close();
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;

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

    Document doc = new Document(pdfDoc);

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

    doc.Close();
}
$vbLabelText   $csharpLabel

IronPDF kann Ihnen helfen, Text oder Bilder auf PDFs auf eine vielseitige und anpassbare Weise hinzuzufügen und bietet Ihnen die volle Kontrolle. Seine API ist einfach zu verstehen und zu bearbeiten, insbesondere für Entwickler, die mit HTML/CSS vertraut sind. iText verwendet seine Bild- und Textstempelwerkzeuge, um den Benutzern mehr Kontrolle über den Inhalt zu geben, der in ihren PDF-Dateien angezeigt wird, obwohl der Prozess letztendlich manueller sein kann.

DOCX in PDF umwandeln

Manchmal muss man PDFs von einem Format in ein anderes konvertieren. In diesem Fall betrachten wir die DOCX-zu-PDF-Konvertierung mit IronPDF und wie IronPDF und iText diesen Prozess unterschiedlich handhaben.

IronPDF

using IronPdf;

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

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

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

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

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

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

iText

iText kann von sich aus keine DOCX-zu-PDF-Konvertierung durchführen; stattdessen verlässt es sich auf externe Bibliotheken wie DocX oder Aspose.Words.

IronPDF stellt Entwicklern ein unkompliziertes und prägnantes Tool zur Verfügung, um DOCX-zu-PDF-Konvertierungsaufgaben zu bewältigen, was es einfach macht, DOCX-Dateien in PDF-Format zu konvertieren, ohne auf externe Bibliotheken angewiesen zu sein. iText hingegen verlässt sich auf externe Bibliotheken, um diese Aufgabe auszuführen.

Zusammenfassung des Vergleichs der Codebeispiele

iText C# HTML zu PDF-Alternativen

Für detailliertere Beispiele besuchen Sie IronPDF-Beispiele zur Erstellung von PDFs aus HTML.

Unterstützung von Bootstrap und Modern CSS Framework

Ein kritisches Thema, das oft bei realer Entwicklung auftritt, ist, wie gut jede Bibliothek moderne CSS-Frameworks verarbeitet. Mit Bootstrap, Tailwind CSS und Foundation als Grundlage der meisten modernen Webanwendungen kann die Framework-Kompatibilität den Entwicklungsworkflow und die Ausgabequalität erheblich beeinflussen.

IronPDF: Vollständige Unterstützung moderner Frameworks

Die Chrome-Rendering-Engine von IronPDF bietet vollständige, produktionsreife Unterstützung für alle modernen CSS-Frameworks:

  • Bootstrap 5: Native Flexbox- und CSS-Grid-Unterstützung für alle Layouts
  • Tailwind CSS: Vollständige Unterstützung für Utility-First-Frameworks
  • Modernes CSS3: Transformationen, Animationen, benutzerdefinierte Eigenschaften und erweiterte Selektoren
  • Framework-Validierung: Die Bootstrap-Startseite und die Bootstrap-Vorlagen werden erfolgreich gerendert.

Codebeispiel: Bootstrap-Fortschrittsanzeigen

using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrap ProgressBars = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h2 class='mb-4'>Project Progress Dashboard</h2>

        <div class='mb-4'>
            <div class='d-flex justify-content-between mb-1'>
                <span>Backend Development</span>
                <span class='text-success fw-bold'>85%</span>
            </div>
            <div class='progress' style='height: 25px;'>
                <div class='progress-bar progress-bar-striped bg-success' role='progressbar'
                     style='width: 85%' aria-valuenow='85' aria-valuemin='0' aria-valuemax='100'>
                </div>
            </div>
        </div>

        <div class='mb-4'>
            <div class='d-flex justify-content-between mb-1'>
                <span>Frontend UI</span>
                <span class='text-warning fw-bold'>60%</span>
            </div>
            <div class='progress' style='height: 25px;'>
                <div class='progress-bar progress-bar-animated bg-warning' role='progressbar'
                     style='width: 60%' aria-valuenow='60' aria-valuemin='0' aria-valuemax='100'>
                </div>
            </div>
        </div>

        <div class='mb-4'>
            <div class='d-flex justify-content-between mb-1'>
                <span>Testing & QA</span>
                <span class='text-info fw-bold'>40%</span>
            </div>
            <div class='progress' style='height: 25px;'>
                <div class='progress-bar bg-info' role='progressbar'
                     style='width: 40%' aria-valuenow='40' aria-valuemin='0' aria-valuemax='100'>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapProgressBars);
pdf.SaveAs("project-progress.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrap ProgressBars = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h2 class='mb-4'>Project Progress Dashboard</h2>

        <div class='mb-4'>
            <div class='d-flex justify-content-between mb-1'>
                <span>Backend Development</span>
                <span class='text-success fw-bold'>85%</span>
            </div>
            <div class='progress' style='height: 25px;'>
                <div class='progress-bar progress-bar-striped bg-success' role='progressbar'
                     style='width: 85%' aria-valuenow='85' aria-valuemin='0' aria-valuemax='100'>
                </div>
            </div>
        </div>

        <div class='mb-4'>
            <div class='d-flex justify-content-between mb-1'>
                <span>Frontend UI</span>
                <span class='text-warning fw-bold'>60%</span>
            </div>
            <div class='progress' style='height: 25px;'>
                <div class='progress-bar progress-bar-animated bg-warning' role='progressbar'
                     style='width: 60%' aria-valuenow='60' aria-valuemin='0' aria-valuemax='100'>
                </div>
            </div>
        </div>

        <div class='mb-4'>
            <div class='d-flex justify-content-between mb-1'>
                <span>Testing & QA</span>
                <span class='text-info fw-bold'>40%</span>
            </div>
            <div class='progress' style='height: 25px;'>
                <div class='progress-bar bg-info' role='progressbar'
                     style='width: 40%' aria-valuenow='40' aria-valuemin='0' aria-valuemax='100'>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapProgressBars);
pdf.SaveAs("project-progress.pdf");
$vbLabelText   $csharpLabel

iText7: Eingeschränkte Framework-Unterstützung

iText7 verwendet einen benutzerdefinierten HTML-zu-PDF-Konverter (pdfHTML) mit erheblichen Einschränkungen für moderne CSS-Frameworks:

  • Keine JavaScript-Ausführung: Dynamische Bootstrap-Komponenten können nicht verarbeitet werden.
  • Eingeschränkte Flexbox-Unterstützung: Bootstrap 4+-Layouts werden oft nicht korrekt dargestellt (Version 7.1.15 bietet nur teilweise Unterstützung).
  • CSS Grid wird nicht unterstützt: Moderne, rasterbasierte Layouts funktionieren nicht.
  • Manuelle Vorverarbeitung erforderlich: Komplexe Layouts benötigen externe Tools wie Selenium oder Puppeteer.

Laut der offiziellen iText-Dokumentation wird Entwicklern geraten:

  1. Vermeiden Sie komplexe CSS-Layouts einschließlich Flexbox
  2. Verwenden Sie auf Tabellen basierende Layouts anstelle moderner Rastersysteme
  3. Bootstrap-Komponenten auf einfaches HTML zu vereinfachen
  4. Gründliche Tests durchzuführen, da die Framework-Kompatibilität begrenzt ist

Auswirkungen in der Praxis: Wenn Ihre Anwendung Bootstrap für ihre Benutzeroberfläche verwendet und Sie PDF-Exporte benötigen, die zu Ihrem Webdesign passen, erfordert iText7 entweder eine umfassende HTML/CSS-Neugestaltung für die PDF-Generierung oder die Integration mit externen Browser-Automatisierungstools, was die Komplexität und die Entwicklungszeit erheblich erhöht.

Weitere umfassende Informationen zur CSS-Framework-Kompatibilität finden Sie im Leitfaden zu Bootstrap & Flexbox CSS.

Preisgestaltung und Lizenzierung: IronPDF vs. iText Library

IronPDF Preise und Lizenzierung

IronPDF-Lizenzierungsoptionen bieten verschiedene Ebenen und zusätzliche Funktionen für den Kauf einer Lizenz. Entwickler können auch [Iron Suite](Iron Suite) kaufen, um auf alle Produkte von Iron Software zum Preis von zwei zuzugreifen. Wenn Sie noch nicht bereit sind, eine Lizenz zu kaufen, stellt IronPDF eine kostenlose Testversion zur Verfügung, die 30 Tage dauert.

  • Unbefristete Lizenzen: Angebot einer Reihe von unbefristeten Lizenzen je nach Teamgröße, Projektanforderungen und Anzahl der Standorte. Jeder Lizenztyp kommt mit E-Mail-Support.

  • Lite License: Diese Lizenz unterstützt einen Entwickler, einen Standort und ein Projekt.

  • Plus License: Unterstützung von drei Entwicklern, drei Standorten und drei Projekten, dies kostet $1,199. Die Plus-Lizenz bietet Chat-, Telefon- und E-Mail-Support.

  • Professional License: Geeignet für größere Teams, Unterstützung von zehn Entwicklern, zehn Standorten und zehn Projekten 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: Zugriff auf laufende Produktaktualisierungen, Sicherheits-Features-Upgrades und Unterstützung durch ihr Ingenieurteam für $1,199/Jahr oder einen einmaligen Kauf von $2,399 für fünf Jahre 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 Lizenzvergleich

iText-Lizenzierung

  • AGPL-Lizenz: Die iText Core-Bibliothek ist quelloffen und Benutzern kostenlos verfügbar. Um iText unter diesem Lizenzmodell zu verwenden, müssen Benutzer dessen Bedingungen einhalten, und alle Änderungen, die an iText unter dieser Lizenz vorgenommen werden, müssen ebenfalls unter dem AGPL-Lizenzmodell veröffentlicht werden.

  • Kommerzielle Lizenz: iText bietet ein kommerzielles Lizenzmodell für Entwickler an, deren Projekte nicht mit den AGPL-Bedingungen übereinstimmen, und die Preisgestaltung basiert auf Angeboten.

Dokumentation und Unterstützung: IronPDF vs. iText

IronPDF

  • Umfassende Dokumentation: Umfangreiche 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 Produktaktualisierungen mit den neuesten Funktionen und Sicherheitskorrekturen.

iText

  • Dokumentation: Umfassende Dokumentation, die die iText-Softwarefunktionen abdeckt.

  • Beispiele und Tutorials: Tutorials und Codebeispiele zu verschiedenen Funktionen.

  • GitHub: Entwickler können alle Probleme oder Bugs im iText GitHub-Repository einreichen und mit der iText-Gruppe kommunizieren.

  • Updates: iText bietet regelmäßige Aktualisierungen und Verbesserungen.

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

Abschluss

Im Bereich der Werkzeuge zur PDF-Manipulation für .NET bieten sowohl IronPDF als auch iText robuste Fähigkeiten, die auf verschiedene Entwicklungsanforderungen zugeschnitten sind. IronPDF zeichnet sich durch seine einfache Integration über Plattformen wie .NET Core, Framework und Standard hinaus, alongside umfassende Funktionen wie HTML-zu-PDF-Konvertierung und erweiterte Sicherheitsoptionen, aus. iText hingegen, bekannt für sein Java-Erbe, bietet leistungsstarke Tools zur PDF-Erstellung und -manipulation unter sowohl Open-Source- als auch kommerziellen Lizenzen an, wobei der Schwerpunkt auf Vielseitigkeit und Anpassung liegt.

Die Wahl zwischen diesen Werkzeugen hängt letztendlich von den Projektanforderungen, den Lizenzierungspräferenzen und dem benötigten technischen Support ab. Ob Sie sich für die Einfachheit und Flexibilität von IronPDF oder das umfangreiche Funktionsset der quelloffenen PDF-Bibliothek iText entscheiden, Entwickler haben reichlich Ressourcen zur Hand, um PDF-Workflows in ihren Anwendungen effektiv zu verbessern.

Sie können die 30-tägige kostenlose Testversion ausprobieren, um die verfügbaren Funktionen zu testen.

Hinweis:iText ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite ist nicht verbunden mit, wird nicht unterstützt von oder gesponsert von iText. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie kann ich HTML in PDF in C# konvertieren?

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

Was sind die Hauptunterschiede zwischen IronPDF und iText?

IronPDF wird für seine Benutzerfreundlichkeit, umfassende Dokumentation und starken technischen Support gelobt, was es zu einer benutzerfreundlichen Option für Entwickler macht. iText, obwohl robust, erfordert oft mehr manuellen Aufwand und ist unter Open-Source (AGPL) und kommerziellen Lizenzen verfügbar.

Welche Lizenzierungsoptionen gibt es für PDF-Bibliotheken?

IronPDF bietet verschiedene permanente Lizenzen und eine gebührenfreie Option an, während iText eine kostenlose AGPL-Lizenz mit einer kommerziellen Option für Projekte bietet, die nicht mit AGPL konform sind.

Welche PDF-Bibliothek bietet besseren Support für Entwickler?

IronPDF liefert umfassende Dokumentation, 24/5 Ingenieursupport und ein aktives Community-Forum, um sicherzustellen, dass Entwickler Zugang zu aktuellen Ressourcen und Unterstützung haben.

Ist IronPDF mit verschiedenen .NET-Umgebungen kompatibel?

Ja, IronPDF ist mit .NET Core, .NET Standard und .NET Framework kompatibel und funktioniert in Umgebungen wie Windows, Linux, Mac, Docker, Azure und AWS.

Wie behandelt IronPDF die Verschlüsselung von PDFs?

IronPDF bietet eine einfache API zur Verschlüsselung von PDFs, die es Benutzern ermöglicht, Metadaten zu bearbeiten und Sicherheitseinstellungen einfach anzupassen, um Dokumentensicherheit und Konformität zu gewährleisten.

Kann IronPDF DOCX zu PDF konvertieren?

Ja, IronPDF übertrifft sich in der DOCX-zu-PDF-Konvertierung und bietet einen direkten und effizienten Prozess ohne externe Bibliotheken, wodurch Dokumentenkonvertierungsaufgaben innerhalb von Anwendungen vereinfacht werden.

Welche Funktionen machen IronPDF für die HTML-zu-PDF-Konvertierung bemerkenswert?

IronPDF nutzt einen ChromePdfRenderer für die HTML-zu-PDF-Konvertierung, der eine einfache Integration von HTML, CSS und JavaScript ermöglicht, um eine präzise Darstellung von Webinhalten in PDFs sicherzustellen.

Wie vergleichen sich IronPDF und iText in Bezug auf plattformübergreifende Kompatibilität?

Beide Bibliotheken unterstützen mehrere Betriebssysteme und Umgebungen, aber IronPDF bietet eine nahtlosere Erfahrung für Aufgaben wie HTML-zu-PDF-Konvertierung und PDF-Verschlüsselung.

Welche Hauptmerkmale bietet IronPDF?

IronPDF bietet Funktionen wie HTML-zu-PDF-Konvertierung, PDF-Dateimanipulation, Verschlüsselung und Entschlüsselung, Bearbeitungsmöglichkeiten, Wasserzeichen, PDF-Stempeln und digitale Signierung.

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