IronPDF vs iTextPdf: Vollständiger .NET PDF-Bibliotheksvergleich
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
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 Enterprise 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 Enterprise 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 Enterprise , 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 Rider & Rider
- 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
- Enterprise 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 Professional 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");
Imports IronPdf
' Instantiate the renderer
Dim renderer As New ChromePdfRenderer()
' Create a PDF from an HTML string
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced example with external assets
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
' Render with custom options
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Dim customPdf = renderer.RenderHtmlAsPdf("<h1>Custom Settings</h1>")
customPdf.SaveAs("custom-settings.pdf")
iTextPdf
using iText.Html2pdf;
using System.IO;
public class HtmlToPdf
{
public static void ConvertHtmlToPdf()
{
using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
}
}
}
using iText.Html2pdf;
using System.IO;
public class HtmlToPdf
{
public static void ConvertHtmlToPdf()
{
using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
}
}
}
Imports iText.Html2pdf
Imports System.IO
Public Class HtmlToPdf
Public Shared Sub ConvertHtmlToPdf()
Using htmlSource As FileStream = File.Open("input.html", FileMode.Open)
Using pdfDest As FileStream = File.Open("output.pdf", FileMode.Create)
Dim converterProperties As New ConverterProperties()
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties)
End Using
End Using
End Sub
End Class
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");
Imports IronPdf
' Load an encrypted PDF or create a new one
Dim 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")
iTextPdf
using iText.Kernel.Pdf;
using System.Text;
public class EncryptPdf
{
public static readonly string DEST = "encrypt_pdf.pdf";
public static readonly string OWNER_PASSWORD = "World";
public static readonly string USER_PASSWORD = "Hello";
protected void ManipulatePdf(string dest)
{
PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest,
new WriterProperties().SetStandardEncryption(
Encoding.UTF8.GetBytes(USER_PASSWORD),
Encoding.UTF8.GetBytes(OWNER_PASSWORD),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128)));
document.Close();
}
}
using iText.Kernel.Pdf;
using System.Text;
public class EncryptPdf
{
public static readonly string DEST = "encrypt_pdf.pdf";
public static readonly string OWNER_PASSWORD = "World";
public static readonly string USER_PASSWORD = "Hello";
protected void ManipulatePdf(string dest)
{
PdfDocument document = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter(dest,
new WriterProperties().SetStandardEncryption(
Encoding.UTF8.GetBytes(USER_PASSWORD),
Encoding.UTF8.GetBytes(OWNER_PASSWORD),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128)));
document.Close();
}
}
Imports iText.Kernel.Pdf
Imports System.Text
Public Class EncryptPdf
Public Shared ReadOnly DEST As String = "encrypt_pdf.pdf"
Public Shared ReadOnly OWNER_PASSWORD As String = "World"
Public Shared ReadOnly USER_PASSWORD As String = "Hello"
Protected Sub ManipulatePdf(ByVal dest As String)
Dim document As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter(dest, (New WriterProperties()).SetStandardEncryption(Encoding.UTF8.GetBytes(USER_PASSWORD), Encoding.UTF8.GetBytes(OWNER_PASSWORD), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128)))
document.Close()
End Sub
End Class
IronPDF bietet unkomplizierte Verschlüsselung und Kontrolle über Dokumentberechtigungen . Die Bibliothek unterstützt benutzerdefinierte Protokollierung für Sicherheitsüberprüfungen und Lizenzschlüsselverwaltung bei Enterprise . 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 Enterprise 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");
Imports IronPdf
Dim pdf As PdfDocument = 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")
iTextPdf
using iText.Kernel.Pdf;
using iText.Kernel.Colors;
// Define areas to redact on each page
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) };
// Draw black rectangles to cover sensitive areas
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf")))
{
for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
{
PdfPage page = pdfDoc.GetPage(pageNum);
PdfCanvas canvas = new PdfCanvas(page);
foreach (Rectangle rect in rectanglesToRedact)
{
canvas.SetFillColor(ColorConstants.BLACK)
.Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
.Fill();
}
}
}
using iText.Kernel.Pdf;
using iText.Kernel.Colors;
// Define areas to redact on each page
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) };
// Draw black rectangles to cover sensitive areas
using (PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output_redacted.pdf")))
{
for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
{
PdfPage page = pdfDoc.GetPage(pageNum);
PdfCanvas canvas = new PdfCanvas(page);
foreach (Rectangle rect in rectanglesToRedact)
{
canvas.SetFillColor(ColorConstants.BLACK)
.Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
.Fill();
}
}
}
Imports iText.Kernel.Pdf
Imports iText.Kernel.Colors
' Define areas to redact on each page
Private rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) }
' Draw black rectangles to cover sensitive areas
Using pdfDoc As New PdfDocument(New PdfReader("input.pdf"), New PdfWriter("output_redacted.pdf"))
Dim pageNum As Integer = 1
Do While pageNum <= pdfDoc.GetNumberOfPages()
Dim page As PdfPage = pdfDoc.GetPage(pageNum)
Dim canvas As New PdfCanvas(page)
For Each rect As Rectangle In rectanglesToRedact
canvas.SetFillColor(ColorConstants.BLACK).Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()).Fill()
Next rect
pageNum += 1
Loop
End Using
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");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Dim cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object
Dim sig As New PdfSignature(cert) With {
.SigningContact = "support@ironsoftware.com",
.SigningLocation = "Chicago, USA",
.SigningReason = "Document Approval"
}
' Sign PDF document
Dim pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
' Apply timestamp
Dim timestampedSig As New PdfSignature(cert) With {
.TimestampHashAlgorithm = TimestampHashAlgorithm.SHA256,
.TimeStampUrl = "___PROTECTED_URL_245___"
}
pdf.SaveAs("signed.pdf")
iTextPdf
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;
class Program
{
static void Main(string[] args)
{
string src = "input.pdf";
string dest = "output_signed.pdf";
string pfxFile = "your_certificate.pfx";
string pfxPassword = "your_password";
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray());
string alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(src))
{
using (PdfWriter writer = new PdfWriter(dest))
{
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
// Create the signer
PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode());
// Configure signature appearance
PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
appearance.SetReason("Digital Signature");
appearance.SetLocation("Your Location");
appearance.SetContact("Your Contact");
// Create signature
IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
}
}
Console.WriteLine($"PDF digitally signed successfully: {dest}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Signatures;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.X509;
class Program
{
static void Main(string[] args)
{
string src = "input.pdf";
string dest = "output_signed.pdf";
string pfxFile = "your_certificate.pfx";
string pfxPassword = "your_password";
try
{
// Load your certificate
Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray());
string alias = null;
foreach (string al in ks.Aliases)
{
if (ks.IsKeyEntry(al))
{
alias = al;
break;
}
}
ICipherParameters pk = ks.GetKey(alias).Key;
X509CertificateEntry[] chain = ks.GetCertificateChain(alias);
X509Certificate2 cert = new X509Certificate2(chain[0].Certificate.GetEncoded());
// Create output PDF with signed content
using (PdfReader reader = new PdfReader(src))
{
using (PdfWriter writer = new PdfWriter(dest))
{
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
// Create the signer
PdfSigner signer = new PdfSigner(pdfDoc, writer, new StampingProperties().UseAppendMode());
// Configure signature appearance
PdfSignatureAppearance appearance = signer.GetSignatureAppearance();
appearance.SetReason("Digital Signature");
appearance.SetLocation("Your Location");
appearance.SetContact("Your Contact");
// Create signature
IExternalSignature pks = new PrivateKeySignature(pk, "SHA-256");
signer.SignDetached(pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
}
}
Console.WriteLine($"PDF digitally signed successfully: {dest}");
}
catch (Exception ex)
{
Console.WriteLine($"Error signing PDF: {ex.Message}");
}
}
}
Imports System
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Signatures
Imports Org.BouncyCastle.Crypto
Imports Org.BouncyCastle.Pkcs
Imports Org.BouncyCastle.X509
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim src As String = "input.pdf"
Dim dest As String = "output_signed.pdf"
Dim pfxFile As String = "your_certificate.pfx"
Dim pfxPassword As String = "your_password"
Try
' Load your certificate
Dim ks As New Pkcs12Store(New FileStream(pfxFile, FileMode.Open), pfxPassword.ToCharArray())
Dim [alias] As String = Nothing
For Each al As String In ks.Aliases
If ks.IsKeyEntry(al) Then
[alias] = al
Exit For
End If
Next al
Dim pk As ICipherParameters = ks.GetKey([alias]).Key
Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias])
Dim cert As New X509Certificate2(chain(0).Certificate.GetEncoded())
' Create output PDF with signed content
Using reader As New PdfReader(src)
Using writer As New PdfWriter(dest)
Using pdfDoc As New PdfDocument(reader, writer)
' Create the signer
Dim signer As New PdfSigner(pdfDoc, writer, (New StampingProperties()).UseAppendMode())
' Configure signature appearance
Dim appearance As PdfSignatureAppearance = signer.GetSignatureAppearance()
appearance.SetReason("Digital Signature")
appearance.SetLocation("Your Location")
appearance.SetContact("Your Contact")
' Create signature
Dim pks As IExternalSignature = New PrivateKeySignature(pk, "SHA-256")
signer.SignDetached(pks, chain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS)
End Using
End Using
End Using
Console.WriteLine($"PDF digitally signed successfully: {dest}")
Catch ex As Exception
Console.WriteLine($"Error signing PDF: {ex.Message}")
End Try
End Sub
End Class
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");
Imports IronPdf
' Stamps a Watermark onto a new or existing PDF
Dim renderer As New ChromePdfRenderer()
Dim 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
Dim watermarkHtml As String = "
<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")
iTextPdf
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
public class TransparentWatermark
{
public static readonly string DEST = "results/sandbox/stamper/transparent_watermark.pdf";
public static readonly string SRC = "../../../resources/pdfs/hero.pdf";
public static void Main(string[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new TransparentWatermark().ManipulatePdf(DEST);
}
protected void ManipulatePdf(string dest)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark1.Close();
PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
over.SetFillColor(ColorConstants.BLACK);
paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark2.Close();
paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
over.SaveState();
PdfExtGState gs1 = new PdfExtGState();
gs1.SetFillOpacity(0.5f);
over.SetExtGState(gs1);
Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark3.Close();
over.RestoreState();
pdfDoc.Close();
}
}
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
public class TransparentWatermark
{
public static readonly string DEST = "results/sandbox/stamper/transparent_watermark.pdf";
public static readonly string SRC = "../../../resources/pdfs/hero.pdf";
public static void Main(string[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new TransparentWatermark().ManipulatePdf(DEST);
}
protected void ManipulatePdf(string dest)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark1.Close();
PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
over.SetFillColor(ColorConstants.BLACK);
paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark2.Close();
paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
over.SaveState();
PdfExtGState gs1 = new PdfExtGState();
gs1.SetFillOpacity(0.5f);
over.SetExtGState(gs1);
Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark3.Close();
over.RestoreState();
pdfDoc.Close();
}
}
Imports iText.IO.Font
Imports iText.IO.Font.Constants
Imports iText.Kernel.Colors
Imports iText.Kernel.Font
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas
Imports iText.Kernel.Pdf.Extgstate
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Public Class TransparentWatermark
Public Shared ReadOnly DEST As String = "results/sandbox/stamper/transparent_watermark.pdf"
Public Shared ReadOnly SRC As String = "../../../resources/pdfs/hero.pdf"
Public Shared Sub Main(ByVal args() As String)
Dim file As New FileInfo(DEST)
file.Directory.Create()
Call (New TransparentWatermark()).ManipulatePdf(DEST)
End Sub
Protected Sub ManipulatePdf(ByVal dest As String)
Dim pdfDoc As New PdfDocument(New PdfReader(SRC), New PdfWriter(dest))
Dim under As New PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), New PdfResources(), pdfDoc)
Dim font As PdfFont = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA))
Dim paragraph As Paragraph = (New Paragraph("This watermark is added UNDER the existing content")).SetFont(font).SetFontSize(15)
Dim canvasWatermark1 As Canvas = (New Canvas(under, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark1.Close()
Dim over As New PdfCanvas(pdfDoc.GetFirstPage())
over.SetFillColor(ColorConstants.BLACK)
paragraph = (New Paragraph("This watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
Dim canvasWatermark2 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark2.Close()
paragraph = (New Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
over.SaveState()
Dim gs1 As New PdfExtGState()
gs1.SetFillOpacity(0.5F)
over.SetExtGState(gs1)
Dim canvasWatermark3 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark3.Close()
over.RestoreState()
pdfDoc.Close()
End Sub
End Class
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");
Imports IronPdf
Imports IronPdf.Editing
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create text stamper
Dim textStamper As New TextStamper() With {
.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
Dim htmlStamper As New HtmlStamper() With {
.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
Dim imageStamper As New ImageStamper(New Uri("___PROTECTED_URL_247___")) With {
.VerticalAlignment = VerticalAlignment.Top,
.HorizontalAlignment = HorizontalAlignment.Left,
.MaxWidth = New Length(150),
.MaxHeight = New Length(150)
}
' Stamp the image stamper on specific pages
pdf.ApplyStamp(imageStamper, {0, 2, 4})
pdf.SaveAs("stamped.pdf")
iTextPdf
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath));
Document doc = new Document(pdfDoc);
// Add stamp (text) to each page
int numPages = pdfDoc.GetNumberOfPages();
for (int i = 1; i <= numPages; i++)
{
doc.ShowTextAligned(new Paragraph(stampText),
36, 36, i, iText.Layout.Properties.TextAlignment.LEFT,
iText.Layout.Properties.VerticalAlignment.TOP, 0);
}
doc.Close();
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
public void StampPDF(string inputPdfPath, string outputPdfPath, string stampText)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPdfPath), new PdfWriter(outputPdfPath));
Document doc = new Document(pdfDoc);
// Add stamp (text) to each page
int numPages = pdfDoc.GetNumberOfPages();
for (int i = 1; i <= numPages; i++)
{
doc.ShowTextAligned(new Paragraph(stampText),
36, 36, i, iText.Layout.Properties.TextAlignment.LEFT,
iText.Layout.Properties.VerticalAlignment.TOP, 0);
}
doc.Close();
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Public Sub StampPDF(ByVal inputPdfPath As String, ByVal outputPdfPath As String, ByVal stampText As String)
Dim pdfDoc As New PdfDocument(New PdfReader(inputPdfPath), New PdfWriter(outputPdfPath))
Dim doc As New Document(pdfDoc)
' Add stamp (text) to each page
Dim numPages As Integer = pdfDoc.GetNumberOfPages()
For i As Integer = 1 To numPages
doc.ShowTextAligned(New Paragraph(stampText), 36, 36, i, iText.Layout.Properties.TextAlignment.LEFT, iText.Layout.Properties.VerticalAlignment.TOP, 0)
Next i
doc.Close()
End Sub
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");
Imports IronPdf
' Instantiate Renderer
Dim renderer As New DocxToPdfRenderer()
' Render from DOCX file
Dim pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Advanced rendering with options
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
' Handle mail merge
Dim mergeFields As New Dictionary(Of String, String) From {
{"Name", "John Doe"},
{"Date", DateTime.Now.ToShortDateString()}
}
Dim mergedPdf As PdfDocument = renderer.RenderDocxAsPdf("template.docx", mergeFields)
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
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 Professional 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 einheitliche 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?

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 Iron Software 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 Enterprise 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 $999 und unterstützt einen Entwickler, einen Standort und ein Projekt.
- Plus Lizenz: Diese Lizenz unterstützt drei Entwickler, drei Standorte und drei Projekte und ist die nächste Stufe nach der Lite Lizenz. Sie kostet $1,499. Die Plus-Lizenz bietet Chat-Support und Telefonsupport zusätzlich zum grundlegenden E-Mail-Support.
- Professional Lizenz: Diese Lizenz eignet sich für größere Teams und unterstützt zehn Entwickler, zehn Standorte und zehn Projekte für $2,999. Es bietet dieselben Support-Kanäle wie die vorherigen Stufen, zusätzlich Bildschirmteilen-Support.
- Lizenzgebührenfreie Weiterverbreitung: Die Lizenz von IronPDF bietet auch eine lizenzgebührenfreie Weiterverbreitungsabdeckung für eine zusätzliche $2,999.
- 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.

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 zu
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 for 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 Enterprise 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 unterIronPDF -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 .
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.



