Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
IronPDF undiText 7 (früher bekannt als iTextSharp) beide bieten die Möglichkeit zur Generierung, Manipulation undpDFs in .NET und .NET Core drucken.
WelcheC# PDF-Bibliothek am besten für Ihr .NET-Projekt geeignet ist? Ziel dieses Artikels ist es, den Lesern zu helfen, eine sachgerechte und informierte Entscheidung zu treffen.
HtmlConverter.ConvertToPDF
methode zur Umwandlung einer HTML-Datei in eine PDF-DateiIronPDF ist eine bekannte .NET-PDF-Bibliothek, die es Entwicklern ermöglicht, auf einfache Weise PDF-Dokumente zu erstellen, zu ändern und mit ihnen zu interagieren. IronPDF unterstützt verschiedene .NET-Umgebungen, einschließlich .NET Core, .NET 8, 7, 6 und Framework, und ist damit äußerst vielseitig. Zu den wichtigsten Funktionen von IronPDF gehören die Konvertierung von HTML in PDF, das Zusammenführen von PDFs, Verschlüsselung und digitale Signaturen. Die Dokumentation ist benutzerfreundlich, und der technische Support ist solide.
iTextSharp ist eine leistungsstarke PDF-Bibliothek für die .NET-Plattform, die ursprünglich von iText(die Java-basiert ist). Es bietet Lösungen auf Unternehmensebene für die Erstellung und Bearbeitung von PDFs und ist sowohl unter Open-Source(AGPL) und kommerzielle Lizenzen. Die iTextSharp-Kernbibliothek bietet ein hohes Maß an Flexibilität und ermöglicht es Entwicklern, PDFs von Grund auf zu erstellen, Formulare zu verwalten, digitale Signaturen anzuwenden, PDF-Funktionen hinzuzufügen und vieles mehr.
IronPDF ist:
Eine gute Wahl für pragmatische Programmierer, die eine Aufgabe erledigen wollen.
iText(iTextSharp) ist:
Eine gute Wahl für freie und akademische Projekte
IronPDF unterstützt eine Vielzahl von Plattformen und Umgebungen und gewährleistet eine nahtlose Integration und Bereitstellung in verschiedenen Systemen:
iTextSharp gibt es seit mindestens 6 Jahren. Es basiert auf einer Open-Source-Java-Codebasis namens iText und hat immer noch einen gewissen Java-Beigeschmack. Entwicklern, die Java zum ersten Mal erlernt haben, dürfte diese Bibliothek bekannt vorkommen.
IronPDF ist eine .NET-first-Bibliothek mit einer API, die auf eine einfache Verwendung in Visual Studio ausgelegt ist. .NET existiert seit fast 20 Jahren, wächst und expandiert ständig und eröffnet viele Möglichkeiten, die IronPDF nutzen soll. Es ermöglicht uns, PDF-Dokumente in .NET Framework-Projekten zu erstellen und zu manipulieren. Sie können IronPDF alsalternative PDF-Bibliothek für iTextSharp-Benutzer.
.NET Core(8, 7, 6, 5 und 3.1+)
IronPDF und iTextSharp bieten beide eine Reihe von Funktionen und Werkzeugen, die für die Arbeit mit PDF-Dateien verwendet werden können; Der Fokus des nächsten Abschnitts liegt darauf, einige dieser Funktionen genauer zu betrachten und zu vergleichen, wie die beiden Bibliotheken bei der Durchführung verschiedener PDF-bezogener Aufgaben abschneiden.
PDF Stamping: Mit IronPDF können Sie Bilder und Text in Ihre PDF-Dokumente stempeln.
Weitere Informationen zu den umfangreichen Funktionen, die IronPDF bietet, finden Sie auf derIronPDF-Funktionsseite.
Konvertieren HTML-Inhalt in PDF umwandeln ist eine sehr einfache Aufgabe, die in vielen verschiedenen Büros und Arbeitsbereichen durchgeführt wird. Nachfolgend finden Sie Code-Beispiele, in denen IronPDF und iText diesen Prozess vergleichen.
IronPDF
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
iTextSharp
using iText.Html2pdf;
static void Main(string[] args)
{
using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
}
}
using iText.Html2pdf;
static void Main(string[] args)
{
using (FileStream htmlSource = File.Open("input.html", FileMode.Open))
using (FileStream pdfDest = File.Open("output.pdf", FileMode.Create))
{
ConverterProperties converterProperties = new ConverterProperties();
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
}
}
Imports iText.Html2pdf
Shared Sub Main(ByVal args() As String)
Using htmlSource As FileStream = File.Open("input.html", FileMode.Open)
Using pdfDest As FileStream = File.Open("output.pdf", FileMode.Create)
Dim converterProperties As New ConverterProperties()
HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties)
End Using
End Using
End Sub
Für die Konvertierung von HTML in PDF bietet IronPDF ein übersichtliches und bequemes Werkzeug für diese Aufgabe. IronPDF nutzt den ChromePdfRenderer, um HTML-Inhalte in PDFs zu konvertieren, und zeichnet sich dadurch aus, dass es Benutzern pixelgenaue PDF-Dokumente liefert. Benutzer können PDFs direkt aus HTML-Zeichenfolgen erstellen, wie im ersten Beispiel gezeigt, oder externe Elemente wie Bilder mit einem optionalen Basispfad einbinden, wie im fortgeschrittenen Beispiel gezeigt. iTextSharp hingegen verwendet HtmlConverter, um HTML-Dateien zu konvertieren, aber der Prozess erfordert mehr Einstellungen.
Verschlüsselung und Entschlüsselung von PDF-Dokumenten sind an vielen Arbeitsplätzen unerlässlich. Um diese Aufgabe leicht zu bewältigen, braucht man ein Werkzeug, das diese Aufgabe bequem erledigen kann. Im folgenden Code sehen wir, wie iTextSharp und IronPDF die Verschlüsselung von PDFs angehen.
IronPDF
using IronPdf;
using System;
// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;
// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System
' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now
' Edit file security settings
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
' change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
iTextSharp
using System;
using System.IO;
using System.Text;
using iText.Kernel.Pdf;
public class EncryptPdf
{
public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
public static readonly String SRC = "../../../resources/pdfs/hello.pdf";
public static readonly String OWNER_PASSWORD = "World";
public static readonly String USER_PASSWORD = "Hello";
public static void Main(String[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new EncryptPdf().ManipulatePdf(DEST);
}
protected void ManipulatePdf(String dest)
{
PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
new WriterProperties().SetStandardEncryption(
Encoding.UTF8.GetBytes(USER_PASSWORD),
Encoding.UTF8.GetBytes(OWNER_PASSWORD),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128
EncryptionConstants.DO_NOT_ENCRYPT_METADATA
)));
document.Close();
}
}
using System;
using System.IO;
using System.Text;
using iText.Kernel.Pdf;
public class EncryptPdf
{
public static readonly String DEST = "results/sandbox/security/encrypt_pdf.pdf";
public static readonly String SRC = "../../../resources/pdfs/hello.pdf";
public static readonly String OWNER_PASSWORD = "World";
public static readonly String USER_PASSWORD = "Hello";
public static void Main(String[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new EncryptPdf().ManipulatePdf(DEST);
}
protected void ManipulatePdf(String dest)
{
PdfDocument document = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest,
new WriterProperties().SetStandardEncryption(
Encoding.UTF8.GetBytes(USER_PASSWORD),
Encoding.UTF8.GetBytes(OWNER_PASSWORD),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128
EncryptionConstants.DO_NOT_ENCRYPT_METADATA
)));
document.Close();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF bietet Anwendern eine einfache Möglichkeit, PDF-Dateien zu verschlüsseln, und gibt ihnen gleichzeitig die Möglichkeit, den Prozess zu kontrollieren, einschließlich der Bearbeitung von Metadaten und der Anpassung von Sicherheitseinstellungen, wie z. B. das Einstellen von schreibgeschützten Dokumenten oder die Einschränkung von Benutzeraktionen wie Kopieren und Einfügen. Auf der anderen Seite bietet iTextSharp eine genauere Kontrolle, erfordert aber zusätzliche Konfiguration, wie z. B. die Festlegung von Verschlüsselungsstandards und Berechtigungen.
Gelegentlich kann es im Umgang mit vertraulichen oder privaten Informationen erforderlich seinredigieren teile einer PDF-Datei. Die folgenden Beispiele zeigen, wie Sie Text mit IronPDF im Vergleich zu iTextSharp redigieren können.
IronPDF
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
iTextSharp
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Kernel.Colors;
string src = "input.pdf";
string dest = "output_redacted.pdf";
using (PdfReader reader = new PdfReader(src))
{
using (PdfWriter writer = new PdfWriter(dest))
{
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
// Iterate through each page
for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
{
PdfPage page = pdfDoc.GetPage(pageNum);
PdfCanvas canvas = new PdfCanvas(page);
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Example: Define rectangles to redact
// Overlay black rectangles to simulate redaction
foreach (Rectangle rect in rectanglesToRedact)
{
canvas.SetFillColor(ColorConstants.BLACK)
.Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
.Fill();
}
}
}
}
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Kernel.Colors;
string src = "input.pdf";
string dest = "output_redacted.pdf";
using (PdfReader reader = new PdfReader(src))
{
using (PdfWriter writer = new PdfWriter(dest))
{
using (PdfDocument pdfDoc = new PdfDocument(reader, writer))
{
// Iterate through each page
for (int pageNum = 1; pageNum <= pdfDoc.GetNumberOfPages(); pageNum++)
{
PdfPage page = pdfDoc.GetPage(pageNum);
PdfCanvas canvas = new PdfCanvas(page);
Rectangle[] rectanglesToRedact = { new Rectangle(100, 100, 200, 50) }; // Example: Define rectangles to redact
// Overlay black rectangles to simulate redaction
foreach (Rectangle rect in rectanglesToRedact)
{
canvas.SetFillColor(ColorConstants.BLACK)
.Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight())
.Fill();
}
}
}
}
Imports System
Imports System.IO
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports iText.Kernel.Colors
Private src As String = "input.pdf"
Private dest As String = "output_redacted.pdf"
Using reader As New PdfReader(src)
Using writer As New PdfWriter(dest)
Using pdfDoc As New PdfDocument(reader, writer)
' Iterate through each page
Dim pageNum As Integer = 1
Do While pageNum <= pdfDoc.GetNumberOfPages()
Dim page As PdfPage = pdfDoc.GetPage(pageNum)
Dim canvas As New PdfCanvas(page)
Dim rectanglesToRedact() As Rectangle = { New Rectangle(100, 100, 200, 50) } ' Example: Define rectangles to redact
' Overlay black rectangles to simulate redaction
For Each rect As Rectangle In rectanglesToRedact
canvas.SetFillColor(ColorConstants.BLACK).Rectangle(rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight()).Fill()
Next rect
pageNum += 1
Loop
End Using
End Using
**Das Redaktionssystem von IronPDF ist übersichtlich und einfach zu bedienen und benötigt nur wenige Zeilen Code, um den Redaktionsprozess zu optimieren. Dies trägt zur Effizienzsteigerung bei der PDF-Redaktion bei und bietet Anwendern eine einfache Möglichkeit, ihre sensiblen und privaten Daten zu schützen.
Andererseits verfügt iTextSharp nicht über eine integrierte Schwärzungsfunktion, so dass Sie manuell schwarze Rechtecke über den zu schwärzenden Inhalt ziehen müssen. Bei diesem Ansatz kann jedoch der Text unter dem Rechteck zugänglich bleiben, so dass Benutzer die verborgenen Daten per Copy-Paste einfügen können, so dass keine echte Schwärzung möglich ist.
In der Lage zu seinzeichen digitale Dokumente wie PDF-Dateien zu erstellen und den Prozess zu automatisieren, könnte eine Zeitersparnis bedeuten. Die folgenden Codeschnipsel vergleichen, wie IronPDF und iTextSharp mit digitalen Signaturen umgehen.
IronPDF
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object
Private sig = New PdfSignature(cert)
' Sign PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
iTextSharp
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
Für das digitale Aufbringen von Signaturen auf PDF-Dateien bietet IronPDF ein kompaktes und dennoch leistungsfähiges Werkzeug für diesen Prozess. Dank seiner Einfachheit kann der Prozess schnell durchgeführt werden, was für jeden Entwickler, der es für seine Signieranforderungen implementiert, Zeit spart. Im Gegensatz dazu erfordert iTextSharp mehr Einrichtungsaufwand und beinhaltet zusätzliche Schritte zur Handhabung digitaler Signaturen, was es komplexer macht, obwohl es für fortgeschrittene Benutzer potenziell flexibler ist.
Die Möglichkeit zum Hinzufügen und Personalisierenwasserzeichen auf PDFs mit Hilfe von Software kann sehr hilfreich sein, wenn es um Vertraulichkeit, Urheberrechtsschutz, Markenbildung oder andere Aufgaben im Zusammenhang mit sensiblen Informationen geht. Im Folgenden wird verglichen, wie IronPDF und iTextSharp Wasserzeichen auf PDF-Dateien anwenden.
IronPDF
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
iTextSharp
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
public class TransparentWatermark
{
public static readonly String DEST = "results/sandbox/stamper/transparent_watermark.pdf";
public static readonly String SRC = "../../../resources/pdfs/hero.pdf";
public static void Main(String[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new TransparentWatermark().ManipulatePdf(DEST);
}
protected void ManipulatePdf(String dest)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark1.Close();
PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
over.SetFillColor(ColorConstants.BLACK);
paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark2.Close();
paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
over.SaveState();
// Creating a dictionary that maps resource names to graphics state parameter dictionaries
PdfExtGState gs1 = new PdfExtGState();
gs1.SetFillOpacity(0.5f);
over.SetExtGState(gs1);
Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark3.Close();
over.RestoreState();
pdfDoc.Close();
}
}
using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Kernel.Pdf.Extgstate;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
public class TransparentWatermark
{
public static readonly String DEST = "results/sandbox/stamper/transparent_watermark.pdf";
public static readonly String SRC = "../../../resources/pdfs/hero.pdf";
public static void Main(String[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new TransparentWatermark().ManipulatePdf(DEST);
}
protected void ManipulatePdf(String dest)
{
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfCanvas under = new PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), new PdfResources(), pdfDoc);
PdfFont font = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA));
Paragraph paragraph = new Paragraph("This watermark is added UNDER the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark1 = new Canvas(under, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark1.Close();
PdfCanvas over = new PdfCanvas(pdfDoc.GetFirstPage());
over.SetFillColor(ColorConstants.BLACK);
paragraph = new Paragraph("This watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
Canvas canvasWatermark2 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark2.Close();
paragraph = new Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")
.SetFont(font)
.SetFontSize(15);
over.SaveState();
// Creating a dictionary that maps resource names to graphics state parameter dictionaries
PdfExtGState gs1 = new PdfExtGState();
gs1.SetFillOpacity(0.5f);
over.SetExtGState(gs1);
Canvas canvasWatermark3 = new Canvas(over, pdfDoc.GetDefaultPageSize())
.ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0);
canvasWatermark3.Close();
over.RestoreState();
pdfDoc.Close();
}
}
Imports iText.IO.Font
Imports iText.IO.Font.Constants
Imports iText.Kernel.Colors
Imports iText.Kernel.Font
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas
Imports iText.Kernel.Pdf.Extgstate
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Public Class TransparentWatermark
Public Shared ReadOnly DEST As String = "results/sandbox/stamper/transparent_watermark.pdf"
Public Shared ReadOnly SRC As String = "../../../resources/pdfs/hero.pdf"
Public Shared Sub Main(ByVal args() As String)
Dim file As New FileInfo(DEST)
file.Directory.Create()
Call (New TransparentWatermark()).ManipulatePdf(DEST)
End Sub
Protected Sub ManipulatePdf(ByVal dest As String)
Dim pdfDoc As New PdfDocument(New PdfReader(SRC), New PdfWriter(dest))
Dim under As New PdfCanvas(pdfDoc.GetFirstPage().NewContentStreamBefore(), New PdfResources(), pdfDoc)
Dim font As PdfFont = PdfFontFactory.CreateFont(FontProgramFactory.CreateFont(StandardFonts.HELVETICA))
Dim paragraph As Paragraph = (New Paragraph("This watermark is added UNDER the existing content")).SetFont(font).SetFontSize(15)
Dim canvasWatermark1 As Canvas = (New Canvas(under, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 550, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark1.Close()
Dim over As New PdfCanvas(pdfDoc.GetFirstPage())
over.SetFillColor(ColorConstants.BLACK)
paragraph = (New Paragraph("This watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
Dim canvasWatermark2 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 500, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark2.Close()
paragraph = (New Paragraph("This TRANSPARENT watermark is added ON TOP OF the existing content")).SetFont(font).SetFontSize(15)
over.SaveState()
' Creating a dictionary that maps resource names to graphics state parameter dictionaries
Dim gs1 As New PdfExtGState()
gs1.SetFillOpacity(0.5F)
over.SetExtGState(gs1)
Dim canvasWatermark3 As Canvas = (New Canvas(over, pdfDoc.GetDefaultPageSize())).ShowTextAligned(paragraph, 297, 450, 1, TextAlignment.CENTER, VerticalAlignment.TOP, 0)
canvasWatermark3.Close()
over.RestoreState()
pdfDoc.Close()
End Sub
End Class
IronPDF's einfaches und intuitives API ermöglicht es dem Anwender, seine PDF-Dateien schnell mit individuellen Wasserzeichen zu versehen und dabei die volle Kontrolle über den Prozess zu behalten. Durch die Verwendung von HTML/CSS wird der Prozess weiter vereinfacht, ohne dass die Kontrolle über die Anpassung verloren geht. der Ansatz von iTextSharp** zum Hinzufügen von Wasserzeichen zu PDFs erfordert mehr manuelle Arbeit zur Durchführung der Aufgabe, was den Prozess verlangsamen kann.
Es gibt Momente, in denen die PDF-Seitengestempelt mit Inhalt, ähnlich wie man Wasserzeichen auf seine PDF-Dateien anbringen kann. Mal sehen, wie IronPDF im Vergleich zu iTextSharp abschneidet:
IronPDF
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create text stamper
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}
' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
iTextSharp
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));
var document = new Document(pdfDoc);
...
}
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));
var document = new Document(pdfDoc);
...
}
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 document As New Document(pdfDoc)
'...
End Sub
Durch einen schnellen Blick auf den Code können Sie sehen, dass IronPDF pragmatisch ist und auf den häufigen Anforderungen der Endbenutzer basiert.
iText ist eine niedrigere Bibliothek, die sich auf eine Zeichen-API konzentriert, bei der wir Objekte, Formen und Text zu Seiten hinzufügen.
iTextSharp.dll verwendet ein primär programmatisches Modell zum Rendern von PDFs. Bei der Verwendung der iTextSharp PDF-Bibliothek wird jedes Stück PDF-Text, Grafik, Tabelle oder Linie auf ein PDF „gezeichnet“ oder aufgetragen. Die API wirkt niedrigstufig und konzentriert sich auf den PDF-Dokumentenstandard. Dieses Modell ermöglicht Präzision, erfordert jedoch möglicherweise, dass Entwickler sich ein wenig damit vertraut machen, wie PDFs funktionieren. Das enge Anpassen an einen vorhandenen Designstil oder Webressourcen kann einige Iterationen erfordern und das Lesen deriTextSharp-Dokumentation. Im Einklang mit seinem Erbe haben die Methodik und die programmgesteuerte Schnittstelle einen ausgeprägten Java-Charakter.
Im Gegensatz dazu verwendet IronPDF einen vollständig eingebetteten Webbrowser-Renderer, um zuhTML in PDF konvertieren. Nach kurzer(1- und 2-zeilig) C# Codebeispiele für die Umwandlung von HTML in PDF, Entwickler können PDFs aus vorhandenen oder neuen HTML-, Bild- und CSS-Dateien erstellen. So können die Entwickler eng mit den vorhandenen Web-Assets zusammenarbeiten und während eines Projekts auch parallel mit den Designern arbeiten. iText beinhaltet zwar die HTML-zu-PDF-Funktionalität für C# .NET, doch es scheint nicht das dominierende Merkmal der Bibliothek zu sein.
Lesen Sie weiter, um mehr vergleichende Details über die verschiedenen Möglichkeiten zu erfahren, wie IronPDF und iTextSharp Entwicklern helfen können, die folgenden Ziele zu erreichen:
Lizenzoptionen sind ebenfalls ein wichtiger Faktor in Entwicklerprojekten. iTextSharp ist Open Source unter der AGPL-Lizenzvereinbarung. Beim Lizenzieren unter AGLP muss jeder, der irgendeinen Teil einer Anwendung nutzt, der iTextSharp enthält(auch über ein Firmennetz oder das Internet) kann ein Recht auf eine vollständige Kopie des Quellcodes der Anwendung haben. Dies eignet sich hervorragend für akademische Arbeiten. Wenn wir iTextSharp in kommerziellen Anwendungen verwenden möchten, ist es am besten, iText zu kontaktieren undein Angebot über die Preise für die kommerzielle Nutzung von iText anfordern.
IronPDF istfrei für Entwicklungund kann dannfür den kommerziellen Einsatz lizenziert zu öffentlich veröffentlichten, günstigen Preisen ab $749.
So vergleichen sich die beiden Bibliotheken:
Konvertierung von HTML in PDF über einen vollständig integrierten Webbrowser | Einfache HTML-Umwandlung in PDF über ein pdfHTML-Zusatzmodul |
Schwerpunkt Rendering: Eingebetteter Webbrowser | Schwerpunkt Rendering: Programmatisches Zeichenmodell |
IronPDF hat explizite Lizenzen mit veröffentlichten Preisen | AGPL! Preise für kommerzielle Nutzung nicht veröffentlicht. |
Einfacher Code mit .NET First Design | Basierend auf einer Java-API |
Nicht geeignet für akademische Aufgaben und Kursarbeiten | Hervorragend geeignet für akademische Aufgaben und Forschung |
IronPDF ermöglicht es .NET- und .NET Core-Entwicklern, PDF-Inhalte einfach in C#, F# und VB.NET für .NET Core und .NET Framework zu erstellen, zu verbinden, zu teilen, zu bearbeiten und zu extrahieren.Erstellen Sie PDFs aus HTML-, ASPX-, CSS-, JS- und Bilddateien..
Es nutzt einen vollständig eingebetteten Webbrowser, um HTML in PDF zu konvertieren. Dies ermöglicht es Entwicklern, PDFs aus HTML, Bildern und CSS zu generieren, eng mit bestehenden Web-Assets zu arbeiten und auch parallel mit Designern während eines Projekts zu arbeiten.
IronPDF konzentriert sich wirklich auf die Produktivität der Entwickler. Die Bibliothek vereinfacht viele häufige komplexe PDF-Aufgaben in praktische C#-Methoden, um Text und Bilder zu extrahieren, PDFs zu signieren, PDFs mit neuem HTML zu bearbeiten und mehr, ohne dass der Entwickler den PDF-Dokumentstandard studieren muss, um das beste Ergebnis zu erzielen.
DieiTextSharp.dll verwendet ein primär programmatisches Modell zum Rendern von PDFs und verfügt über fortschrittliche APIs zur PDF-Bearbeitung, die leistungsstark sind und sich eng an den PDF-Standard halten.
Basierend auf einer Java-Bibliothek
Zum Vergleich erstellen wir ein Beispielprojekt, das beide Bibliotheken verwendet:
Führen Sie die folgenden Schritte aus, um eine ASP.NET-Website zu erstellen:
Visual Studio öffnen
Klicken Sie auf Datei > Neues Projekt
Wählen Sie im Listenfeld Projekttyp unter Visual C# die Option Web
OK anklicken
Jetzt haben wir etwas, womit wir arbeiten können. Installieren wir IronPDF.
Um IronPDF nutzen zu können, müssen Sie es zunächst installieren(kostenlos). Es gibt zwei Möglichkeiten:
Download der Bibliothek
Schauen wir uns das einmal genauer an.
Es gibt drei Möglichkeiten, das IronPDF NuGet-Paket zu installieren:
Visual Studio
Entwickler-Eingabeaufforderung
Laden Sie das NuGet-Paket direkt herunter
Gehen wir sie der Reihe nach durch.
Visual Studio bietet den NuGet Package Manager, mit dem Sie NuGet-Pakete in Ihren Projekten installieren können. Sie können über das Projektmenü darauf zugreifen oder indem Sie mit der rechten Maustaste auf Ihr Projekt im Lösungsexplorer klicken. Diese beiden Optionen sind in den Abbildungen 3 und 4 dargestellt
Nachdem Sie in einer der beiden Optionen auf NuGet-Pakete verwalten geklickt haben, suchen Sie nach dem IronPDF-Paket und installieren es wie in Abbildung 5 dargestellt.
Die folgenden Schritte öffnen die Entwickler-Eingabeaufforderung und installieren das IronPDF NuGet-Paket.
Suchen Sie nach Ihrer Entwickler-Eingabeaufforderung - sie befindet sich normalerweise in Ihrem Visual Studio-Ordner
Geben Sie den folgenden Befehl ein: PM > Install-Package IronPDF
Eingabe drücken
Das Paket wird installiert
Um das NuGet-Paket herunterzuladen:
Navigieren Sie zuhttps://www.nuget.org/packages/IronPdf/
Klicken Sie auf Paket herunterladen
Nachdem das Paket heruntergeladen wurde, doppelklicken Sie es
Die zweite Möglichkeit, IronPDF zu installieren, besteht darindirekter Download.
Verweisen Sie auf die Bibliothek in Ihrem Projekt, indem Sie die folgenden Schritte ausführen:
Klicken Sie mit der rechten Maustaste auf die Lösung im Projektmappen-Explorer
Referenzen auswählen
Suchen Sie nach der IronPDF.dll-Bibliothek
OK anklicken
Nun, da Sie eingerichtet sind, können wir nach der Einrichtung von iTextSharp damit beginnen, mit den großartigen Funktionen der IronPDF-Bibliothek zu spielen.
Es gibt drei Möglichkeiteninstallieren Sie das iTextSharp NuGet-Paketsie sind:
Gehen wir sie der Reihe nach durch.
Suchen Sie für Visual Studio nach iText und installieren Sie die entsprechenden Pakete, wie im Folgenden gezeigt.
Oder, in der Eingabeaufforderung für Entwickler(wie zuvor gezeigt, geben Sie den folgenden Befehl ein)
PM > Installieren-Paket itext7
Oder, herunterladeniText 7 direkt von ihrer Website.
Nachdem Sie nun die erforderlichen Projekte erstellt haben, wollen wir diese beiden Bibliotheken im Code vergleichen.
Der folgende Code lädt eine Webseite herunter und wandelt sie in ein PDF-Dokument um.
Der folgende Code verwendet IronPDF, um ein PDF-Dokument direkt von einer Website-Adresse zu erstellen. Benutzerdefinierte Kopf- und Fußzeilen sind ebenfalls enthalten.
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
// Create a PDF from any existing web page
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50; //millimetres
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
}
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
// Create a PDF from any existing web page
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50; //millimetres
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
}
'''
'''IronPDF URL to PDF
'''anchor-ironpdf-website-to-pdf
'''*
Private Sub ExistingWebURL()
' Create a PDF from any existing web page
Dim Renderer = New IronPdf.ChromePdfRenderer()
' Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50 'millimetres
Renderer.RenderingOptions.MarginBottom = 50
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
}
Renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
}
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Renderer.RenderingOptions.EnableJavaScript = True
Renderer.RenderingOptions.RenderDelay = 500 'milliseconds
Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
PDF.SaveAs("wikipedia.pdf")
End Sub
IronPDF kann Ihnen helfen, Text oder Bilder in PDFs einzufügen, und zwar auf eine sehr vielseitige und anpassbare Weise; können Sie die volle Verantwortung übernehmen. Die API ist leicht zu verstehen und zu bedienen, insbesondere für Entwickler, die mit HTML/CSS vertraut sind. iTextSharp nutzt seine Bild- und Textstempelwerkzeuge, um den Benutzern mehr Kontrolle über den Inhalt ihrer PDF-Dateien zu geben, obwohl der Prozess am Ende mehr manuell sein kann.
Manchmal müssen Sie PDF-Dateien von einem Format in ein anderes konvertieren. In diesem Fall betrachten wirUmwandlung von DOCX in PDF und vergleichen, wie IronPDF und iTextSharp diesen Prozess unterschiedlich handhaben.
IronPDF
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()
' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
iTextSharp
Leider bietet iTextSharp keine integrierte DOCX-zu-PDF-Konvertierungsfunktionalität, und Entwickler müssen sich für diese Aufgabe auf externe Bibliotheken wie Aspose.Words verlassen.
IronPDF bietet Entwicklern ein einfaches und übersichtliches Werkzeug für die Konvertierung von DOCX in PDF, das die Umwandlung von DOCX-Dateien in das PDF-Format ohne externe Bibliotheken ermöglicht. iTextSharp hingegen stützt sich auf externe Bibliotheken, um diese Aufgabe zu erfüllen.
Ausführlichere Beispiele finden Sie unterIronPDF-Beispiele.
IronPDF hat verschiedene Ebenen und zusätzliche Funktionen für den Erwerb einer Lizenz. Entwickler können auch kaufenIron Suitedie Ihnen Zugriff auf alle Produkte von Iron Software zum Preis von zwei ermöglicht. Wenn Sie noch nicht bereit sind, eine Lizenz zu kaufen, bietet IronPDF einekostenloser Testdie 30 Tage dauert.
Lite License: Diese Lizenz kostet $749 und unterstützt einen Entwickler, einen Standort und ein Projekt.
Mit diesem Codesegment haben wir die Tiger Wikipediawebseite zu PDF mit beiden Bibliotheken.
Iron Suite: Für 1.498 USD erhalten Sie Zugang zu allen Iron Software-Produkten, einschließlich IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint und IronWebScraper.
Aktualisierungen: Regelmäßige Aktualisierungen werden bereitgestellt, um Funktionen zu verbessern und Fehler zu beheben.
Weitere Informationen zu IronPDF-Dokumentation und -Support finden Sie unterIronPDF-Dokumentation und dieIron Software YouTube-Kanal.
BeideIronPDFund iTextSharp sind solide Optionen für die PDF-Bearbeitung in .NET-Projekten. IronPDF zeichnet sich durch seine intuitive Plattformintegration und Funktionen wie HTML-zu-PDF-Konvertierung und erweiterte Sicherheitsoptionen aus. iTextSharp, das auf der Open-Source-Bibliothek iText basiert, bietet unter den AGPL- und kommerziellen Lizenzen eine leistungsfähige und flexible Werkzeugpalette, die es ideal für Projekte macht, die von der Flexibilität der Open-Source profitieren können oder strikte Lizenzkonformität erfordern.
Die Wahl des richtigen Tools hängt von den Lizenzanforderungen Ihres Projekts, den Anforderungen an den technischen Support und den spezifischen Funktionsanforderungen ab. Ob Sie die Einfachheit und umfassende Unterstützung von IronPDF oder die Open-Source-Robustheit von iTextSharp bevorzugen, beide Bibliotheken bieten Entwicklern reichlich Ressourcen zur Verbesserung von PDF-Workflows in ihren Anwendungen.
Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.
10 .NET API-Produkte für Ihre Bürodokumente