Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
IronPDF etiText 7 (anciennement connu sous le nom de iTextSharp) ces deux outils permettent de générer, de manipuler et d'analyser des donnéesimprimer des PDF dans .NET et .NET Core.
QuiBibliothèque PDF C# est le mieux adapté à votre projet .NET ? L'objectif de cet article est d'aider les lecteurs à prendre une décision correcte et éclairée.
HtmlConverter.ConvertToPDF
méthode de conversion d'un fichier HTML en fichier PDFIronPDF est une bibliothèque PDF .NET de premier plan qui permet aux développeurs de créer, de modifier et d'interagir facilement avec des documents PDF. Il prend en charge divers environnements .NET, notamment .NET Core, .NET 8, 7, 6 et Framework, ce qui le rend très polyvalent. Les principales fonctionnalités d'IronPDF comprennent la conversion de HTML en PDF, la fusion de PDF, le chiffrement et les signatures numériques. La documentation est conviviale et l'assistance technique est solide.
iTextSharp est une puissante bibliothèque PDF pour la plateforme .NET, dérivée à l'origine d'iText(qui est basé sur Java). Il fournit des solutions d'entreprise pour la création et la manipulation de PDF et est disponible sous les deux formes suivantes : open-source et open-source(AGPL) et les licences commerciales. La bibliothèque de base iTextSharp offre un haut degré de flexibilité, permettant aux développeurs de créer des PDF à partir de zéro, de gérer des formulaires, d'appliquer des signatures numériques, d'ajouter des fonctionnalités PDF, et bien plus encore.
IronPDF est:
Un excellent choix pour les codeurs pragmatiques qui essaient de faire leur travail.
iText(iTextSharp) est:
Un excellent choix pour les projets libres et académiques
IronPDFprend en charge un large éventail de plateformes et d'environnements, assurant une intégration et un déploiement transparents dans divers systèmes :
iTextSharp le logiciel iText existe depuis au moins 6 ans, il est basé sur une base de code Java open-source appelée iText, et a toujours un peu la saveur de Java. Les développeurs qui ont appris Java pour la première fois peuvent trouver cette bibliothèque familière.
IronPDF est une bibliothèque .NET avec une API conçue pour faciliter l'utilisation de Visual Studio. .NET existe depuis près de 20 ans, se développe et s'étend continuellement, et ouvre de nombreuses possibilités, dont IronPDF est conçu pour tirer parti. Il nous permet de créer et de manipuler des documents PDF dans des projets .NET framework. Vous pouvez télécharger IronPDF en tant quebibliothèque PDF alternative pour les utilisateurs d'iTextSharp.
.NET Core(8, 7, 6, 5 et 3.1+)
IronPDF et iTextSharp offrent tous deux une gamme de fonctionnalités et d'outils qui peuvent être utilisés pour travailler avec des fichiers PDF ; l'objectif de cette prochaine section sera d'examiner de plus près certaines de ces fonctionnalités et comment les deux bibliothèques se comparent lorsqu'il s'agit d'effectuer différentes tâches liées aux PDF.
PDF Stamping : Appliquez des images et du texte sur vos documents PDF en utilisant IronPDF.
Pour plus d'informations sur l'ensemble des fonctionnalités offertes par IronPDF, visitez lePage des fonctionnalités d'IronPDF.
ConversionContenu HTML en PDFest une tâche très simple qui est effectuée dans de nombreux bureaux et espaces de travail différents. Vous trouverez ci-dessous des exemples de code comparant la façon dont IronPDF et iText abordent ce processus.
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
Lors de la conversion de HTML en PDF, IronPDF offre un outil concis et pratique pour effectuer cette tâche. En utilisant le ChromePdfRenderer pour convertir du contenu HTML en PDF, IronPDF excelle à fournir aux utilisateurs des documents PDF précis au pixel près. Les utilisateurs peuvent créer des fichiers PDF directement à partir de chaînes HTML, comme montré dans le premier exemple, ou inclure des ressources externes telles que des images avec un chemin de base optionnel, comme démontré dans l'exemple avancé. iTextSharp, quant à lui, utilise HtmlConverter pour convertir les fichiers HTML, mais le processus nécessite davantage de configuration.
Cryptageet le déchiffrement des documents PDF sont essentiels dans de nombreux lieux de travail. Pour gérer cette tâche facilement, il est nécessaire d'avoir un outil qui peut le faire de manière pratique. Dans le code ci-dessous, nous verrons comment iTextSharp et IronPDF s'attaquent au chiffrement des PDF.
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 offre aux utilisateurs un moyen simple de crypter des fichiers PDF tout en leur donnant beaucoup de contrôle sur le processus, y compris l'édition des métadonnées et le réglage des paramètres de sécurité, tels que rendre les documents en lecture seule ou restreindre des actions utilisateur comme le copier-coller. D'autre part, iTextSharp offre un contrôle plus granulaire mais nécessite une configuration supplémentaire, telle que la spécification des normes de cryptage et des permissions.
Parfois, lorsqu'on manipule des informations confidentielles ou privées, il peut être nécessaire derédiger parties d'un fichier PDF. Les exemples suivants montrent comment vous pouvez expurger du texte en utilisant IronPDF par rapport à iTextSharp.
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
L'outil de rédaction d'IronPDF est concis et facile à utiliser, nécessitant seulement quelques lignes de code pour simplifier le processus de rédaction. Cela aide à améliorer l'efficacité des tâches de rédaction de PDF et offre aux utilisateurs un moyen facile de protéger leurs données sensibles et privées.
D'autre part, iTextSharp ne dispose pas d'une fonction de rédaction intégrée, ce qui vous oblige à dessiner manuellement des rectangles noirs sur le contenu que vous souhaitez expurger. Toutefois, cette approche peut laisser le texte sous le rectangle accessible, permettant aux utilisateurs de copier-coller les données cachées, ce qui ne constitue pas une véritable rédaction.
Être capable designeles documents numériques tels que les fichiers PDF, puis en faisant un processus automatisé, cela pourrait faire gagner du temps. Les extraits de code suivants comparent la manière dont IronPDF et iTextSharp gèrent les signatures numériques.
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
Lors de l'application de signatures numériques aux fichiers PDF, IronPDF présente un outil compact mais puissant pour compléter ce processus. Sa simplicité permet de mener le processus rapidement, économisant ainsi du temps pour tout développeur qui l'implémente pour ses besoins de signature. En revanche, iTextSharp nécessite plus d'installation et implique des étapes supplémentaires pour gérer les signatures numériques, ce qui le rend plus complexe, bien que potentiellement plus flexible pour les utilisateurs avancés.
La capacité d'ajouter et de personnaliserfiligranessur les PDF via un logiciel peut grandement aider à la confidentialité, à la protection des droits d'auteur, à la marque ou à toute autre tâche impliquant des informations sensibles. Ce qui suit est une comparaison de la façon dont IronPDF et iTextSharp appliquent des filigranes aux fichiers PDF.
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
L'API facile et intuitive de IronPDF permet aux utilisateurs d'appliquer rapidement des filigranes personnalisés à leurs fichiers PDF, tout en leur donnant un contrôle total sur le processus. Son utilisation de HTML/CSS simplifie davantage le processus sans perdre aucun contrôle sur la personnalisation. l'approche de iTextSharp** pour ajouter des filigranes aux PDF nécessite plus de travail manuel pour effectuer la tâche, ce qui peut ralentir le processus.
Il y a des moments où les pages PDF ont besoin d'êtretamponnéavec du contenu, similaire à la manière dont on pourrait avoir besoin d'appliquer des filigranes à leurs fichiers PDF. Voyons comment IronPDF se compare à iTextSharp :
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
En jetant rapidement un coup d'œil au code, vous pouvez voir qu'IronPDF est pragmatique, basé sur les exigences courantes des utilisateurs finaux.
iText est une bibliothèque de bas niveau qui se concentre sur une API de dessin où nous ajoutons des objets, des formes et du texte aux pages.
iTextSharp.dll utilise un modèle principalement programmatique pour rendre les PDF. Lors de l'utilisation de la bibliothèque PDF iTextSharp, chaque élément de texte PDF, graphique, tableau ou ligne est "tracé" ou dessiné sur un PDF. L'API semble bas-niveau et se concentre sur la norme de document PDF. Ce modèle permet la précision mais peut nécessiter que les développeurs apprennent un peu comment fonctionnent les PDFs. Se rapprocher étroitement d'un style de conception existant ou d'actifs Web peut nécessiter quelques itérations et la lecture dudocumentation iTextSharp. Conformément à son héritage, la méthodologie et l'interface programmatique ont une saveur Java distincte.
En revanche, IronPDF utilise un moteur de rendu de navigateur web intégré complet pourconvertir HTML en PDF. Suivre un court métrage(1 et 2 lignes) Exemples de code C# pour la conversion de HTML en PDF, les développeurs peuvent générer des PDFs à partir de HTML, d'images et de CSS existants ou nouveaux. Cela permet aux développeurs de travailler en étroite collaboration avec les ressources web existantes et de travailler en parallèle avec les concepteurs au cours d'un projet. iText inclut la fonctionnalité HTML to PDF pour C# .NET, bien que ce ne soit apparemment pas la caractéristique principale de la bibliothèque.
Poursuivez votre lecture pour obtenir des détails comparatifs sur les différentes façons dont IronPDF et iTextSharp peuvent aider les développeurs à atteindre les objectifs suivants :
Les options de licence sont également un facteur important dans les projets de développement. iTextSharp est un logiciel libre sous licence AGPL. Lorsqu'il est sous licence AGLP, toute personne utilisant une partie d'une application contenant iTextSharp(même à travers un réseau d'entreprise ou l'internet) peut avoir droit à une copie intégrale du code source de l'application. C'est un excellent outil pour les travaux académiques. Si l'on souhaite utiliser iTextSharp dans des applications commerciales, il convient de contacter iText etdemandez-leur un devis sur la tarification de l'utilisation commerciale d'iText.
IronPDF estlibre pour le développementet peut donc êtresous licence pour un déploiement commercial à des prix raisonnables publiés publiquement, à partir de $749.
Voici comment se comparent les deux bibliothèques :
Conversion de HTML en PDF via un navigateur web intégré complet | HTML de base vers PDF via un module complémentaire pdfHTML |
Focus sur le rendu : Navigateur web intégré | Focus sur le rendu : Modèle de dessin programmatique |
IronPDF dispose de licences explicites avec des prix publiés | AGPL ! Le prix de l'utilisation commerciale n'est pas publié. |
Facile à coder avec .NET First Design | Basé sur une API Java |
Ne convient pas aux travaux académiques et aux cours | Excellent pour les travaux académiques et la recherche |
IronPDF permet aux développeurs .NET et .NET Core de générer, fusionner, diviser, éditer et extraire facilement du contenu PDF en C#, F# et VB.NET pour .NET Core et .NET Framework, ainsi quecréer des PDF à partir de fichiers HTML, ASPX, CSS, JS et image.
Il utilise un navigateur web entièrement intégré pour convertir HTML en PDF. Cela permet aux développeurs de générer des PDF à partir de HTML, d'images et de CSS, de travailler en étroite collaboration avec les ressources web existantes et de travailler en parallèle avec les concepteurs au cours d'un projet.
IronPDF se concentre vraiment sur la productivité des développeurs. La bibliothèque simplifie de nombreuses tâches complexes liées aux PDF en méthodes C# pratiques pour extraire du texte et des images, signer des PDF, modifier des PDF avec un nouvel HTML, et plus encore, sans que le développeur ait besoin d'étudier la norme de document PDF pour comprendre comment obtenir le meilleur résultat.
LesiTextSharp.dll utilise un modèle essentiellement programmatique pour rendre les PDF, et il dispose d'API de manipulation PDF avancées qui sont puissantes et suivent de près la norme PDF.
Basé sur une bibliothèque Java
Comparons en créant un projet d'exemple utilisant les deux bibliothèques :
Suivez les étapes suivantes pour créer un site web ASP.NET :
Ouvrir Visual Studio
Cliquez sur Fichier > Nouveau projet
Sélectionnez Web sous Visual C# dans la liste déroulante Type de projet
Cliquez sur OK
Nous avons maintenant une base de travail. Installons IronPDF.
Pour utiliser IronPDF, vous devez d'abord l'installer(gratuit). Deux options sont possibles :
Télécharger la bibliothèque
Voyons cela de plus près.
Il y a trois façons d'installer le paquet NuGet IronPDF :
Visual Studio
Invite de commande du développeur
Télécharger directement le paquet NuGet
Faisons-les un par un.
Visual Studio fournit le gestionnaire de paquets NuGet pour vous permettre d'installer des paquets NuGet dans vos projets. Vous pouvez y accéder via le menu Projet, ou en cliquant avec le bouton droit de la souris sur votre projet dans l'Explorateur de solutions. Ces deux options sont présentées ci-dessous dans les figures 3 et 4
Après avoir cliqué sur Manage NuGet Packages dans l'une ou l'autre des options, recherchez le paquetage IronPDF et installez-le comme indiqué dans la Figure 5.
Les étapes suivantes ouvrent l'invite de commande développeur et installent le package IronPDF NuGet
Recherchez l'invite de commande Developer - elle se trouve généralement dans le dossier Visual Studio
Tapez la commande suivante : PM > Installer-Package IronPDF
Appuyer sur Entrée
Le paquet sera installé
Pour télécharger le paquet NuGet :
Naviguez jusqu'àhttps://www.nuget.org/packages/IronPdf/
Cliquez sur Télécharger le paquet
Une fois le paquet téléchargé, double-cliquez dessus
La deuxième façon d'installer IronPDF est la suivantetéléchargement direct.
Faites référence à la bibliothèque dans votre projet en suivant les étapes suivantes :
Cliquez avec le bouton droit de la souris sur la solution dans l'explorateur de solutions
Sélectionner les références
Recherchez la bibliothèque IronPDF.dll
Cliquez sur OK
Maintenant que vous êtes installé, nous pouvons commencer à jouer avec les fonctionnalités impressionnantes de la bibliothèque IronPDF après l'installation d'iTextSharp.
Il y a trois façons deinstaller le package NuGet iTextSharp, ils sont :
Faisons-les un par un.
Pour Visual Studio, recherchez iText et installez les paquets correspondants, comme indiqué ci-dessous.
Ou, dans l'invite de commandes du développeur(comme indiqué précédemment, entrez la commande suivante)
PM > Installer le paquet itext7
Ou bien, téléchargeziText 7 directement à partir de leur site web.
Maintenant que vous avez créé les projets nécessaires, comparons ces deux bibliothèques dans le code.
Le code suivant télécharge une page web et la convertit en document PDF.
Le code suivant utilise IronPDF pour créer un document PDF directement à partir de l'adresse d'un site web. Des en-têtes et pieds de page personnalisés sont également inclus.
/**
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 peut vous aider à ajouter du texte ou des images sur des PDF de manière très polyvalente et personnalisable. cela vous permet de prendre le contrôle complet. Il est facile de comprendre et de travailler avec l'API, surtout pour les développeurs familiers avec HTML/CSS. iTextSharp utilise ses outils d'estampillage d'images et de texte pour donner aux utilisateurs plus de contrôle sur le contenu affiché dans leurs fichiers PDF, bien que le processus puisse finir par être plus manuel.
Parfois, vous devrez peut-être convertir des PDF d'un format à un autre. Dans ce cas, nous regardonsConversion de DOCX en PDF et en comparant la façon dont IronPDF et iTextSharp gèrent ce processus différemment.
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
Malheureusement, iTextSharp ne fournit pas de fonctionnalité intégrée de conversion de DOCX en PDF, et les développeurs doivent s'appuyer sur des bibliothèques externes comme Aspose.Words pour cette tâche.
IronPDF fournit aux développeurs un outil simple et concis pour gérer les tâches de conversion de DOCX en PDF, facilitant ainsi la conversion des fichiers DOCX en format PDF sans avoir besoin de bibliothèques externes. iTextSharp, quant à lui, s'appuie sur des bibliothèques externes pour mener à bien cette tâche.
Pour des exemples plus détaillés, veuillez visiterExemples IronPDF.
IronPDF dispose de différents niveaux et fonctionnalités supplémentaires pour l'achat d'une licence. Les développeurs peuvent également acheterIron Suitece qui vous donne accès à tous les produits d'Iron Software au prix de deux. Si vous n'êtes pas prêt à acheter une licence, IronPDF propose unessai gratuitqui dure 30 jours.
Lite License : Cette licence coûte $749 et prend en charge un développeur, un emplacement et un projet.
Avec ce segment de code, nous avons transformé le Tiger Wikipediapage web au format PDF avec les deux bibliothèques.
Iron Suite : Pour 1 498 $, vous avez accès à tous les produits Iron Software, y compris IronPDF, IronOCR, IronWord, IronXL, IronBarcode, IronQR, IronZIP, IronPrint et IronWebScraper.
Mises à jour: Des mises à jour régulières sont fournies pour améliorer les fonctionnalités et corriger les bogues.
Pour plus de détails sur la documentation et le support d'IronPDF, visitezDocumentation IronPDF et leChaîne YouTube Iron Software.
Les deuxIronPDFet iTextSharp sont des options solides pour la manipulation de PDF dans les projets .NET. IronPDF se distingue par son intégration intuitive à la plateforme et ses fonctionnalités telles que la conversion HTML en PDF et des options de sécurité avancées. iTextSharp, bien qu'ancré dans la bibliothèque open-source iText, offre un ensemble d'outils puissant et flexible sous les licences AGPL et commerciales, ce qui le rend idéal pour les projets pouvant bénéficier de la flexibilité de l'open source ou nécessitant le respect strict des licences.
Choisir le bon outil dépend des exigences de licence de votre projet, des besoins de support technique et des demandes spécifiques de fonctionnalités. Que vous préfériez la simplicité et le support complet de IronPDF ou la robustesse open-source de iTextSharp, les deux bibliothèques offrent aux développeurs des ressources abondantes pour améliorer les flux de travail PDF dans leurs applications.
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.
9 produits de l'API .NET pour vos documents de bureau