Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
PDF (EN ANGLAIS)(Format de document portable) est un format de document très répandu qui est apprécié pour sa capacité à préserver le formatage des documents, la sécurité et la portabilité.
Les fichiers PDF sont devenus l'un des formats de document les plus utilisés au monde, et il existe plusieurs bibliothèques permettant de créer et de manipuler des PDF dans le langage C#.
Découvrez comment éditer des fichiers PDF en C# avec IronPDF et iTextSharpla traduction doit également s'appuyer sur des bibliothèques puissantes, ce qui rend la tâche plus simple.
Dans cet article, nous allons comparer deux bibliothèques populaires pour la manipulation des PDF en C# : iTextSharp et IronPDF. Nous verrons comment éditer des fichiers PDF à l'aide des deux bibliothèques, puis nous étudierons en quoi IronPDF est une option supérieure à iTextSharp, notamment en termes d'impression, de performances et de prix.
iTextSharp etFonctionnalités d'IronPDF et informations sur la version d'essai sont disponibles pour aider les développeurs à travailler efficacement avec des fichiers PDF en C#. Ces deux bibliothèques offrent un large éventail de caractéristiques et de fonctionnalités permettant de créer, d'éditer et de manipuler des documents PDF.
la DLL iTextSharp est un portage en C# de la bibliothèque iText basée sur Java. Il fournit une API simple et facile à utiliser pour créer et manipuler des documents PDF. iTextSharp est une bibliothèque open-source disponible sous licence AGPL.
IronPDF est une bibliothèque .NET conçue pour créer, modifier et manipuler des fichiers PDF à l'aide de C#. Il fournit une API moderne et intuitive pour travailler avec des documents PDF. IronPDF est une bibliothèque commerciale qui s'accompagne d'uneversion d'essai gratuite et options d'abonnement pour un usage plus étendu.
Les bibliothèques iTextSharp et IronPDF offrent toutes deux un large éventail de caractéristiques et de fonctionnalités permettant de créer, d'éditer et de manipuler des documents PDF. Cependant, IronPDF présente plusieurs avantages par rapport à iTextSharp, ce qui en fait un choix privilégié pour travailler avec des documents PDF en C#.
Maintenant que nous avons examiné les différences entre iTextSharp et IronPDF, voyons comment éditer des fichiers PDF à l'aide de ces deux bibliothèques. Nous allons voir des exemples d'ajout de texte, de champs de formulaire et de remplissage de formulaires dans un document PDF existant en utilisant iTextSharp et IronPDF.
Avant de commencer, vous aurez besoin des éléments suivants :
Visual Studio installé sur votre machine.
Connaissance de base du langage de programmation C#.
la bibliothèque iTextSharp installée dans votre projet.
Pour installer la bibliothèque iTextSharp dans votre projet, vous pouvez utiliser le gestionnaire de paquets NuGet. Ouvrez votre projet Visual Studio et faites un clic droit sur le nom du projet dans l'explorateur de solutions. Sélectionnez "Manage NuGet Packages" dans le menu contextuel. Dans le gestionnaire de paquets NuGet, recherchez "iTextSharp" et installez la dernière version du paquet.
Pour créer un nouveau fichier PDF à l'aide d'iTextSharp, nous devons créer une nouvelle instance de la classe "Document" et passer un nouvel objet FileStream
à son constructeur. En voici un exemple :
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
document.Add(header)
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
i += 1
Loop
document.SetTopMargin(50)
document.SetBottomMargin(50)
Dans le code ci-dessus, nous avons créé un nouveau fichier PDF appelé "nouveaufichier.pdf" et y avons ajouté un nouveau paragraphe.
Pour modifier un fichier PDF existant à l'aide d'iTextSharp, nous devons créer un objet PdfReader
pour lire le document PDF existant et un objet PdfStamper
pour le modifier. En voici un exemple :
/**
iText URL to PDF
anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
//Initialize PDF writer
PdfWriter writer = new PdfWriter("wikipedia.pdf");
//Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
document.Close();
}
/**
iText URL to PDF
anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
//Initialize PDF writer
PdfWriter writer = new PdfWriter("wikipedia.pdf");
//Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
document.Close();
}
'''
'''iText URL to PDF
'''anchor-itext-url-to-pdf
'''*
Private Sub ExistingWebURL()
'Initialize PDF writer
Dim writer As New PdfWriter("wikipedia.pdf")
'Initialize PDF document
Using pdf As New PdfDocument(writer)
Dim properties As New ConverterProperties()
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format")
Dim document As Document = HtmlConverter.ConvertToDocument(New FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties)
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
document.Add(header)
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
i += 1
Loop
document.SetTopMargin(50)
document.SetBottomMargin(50)
document.Close()
End Using
End Sub
Dans le code ci-dessus, nous avons ouvert un fichier PDF existant appelé "fichier existant.pdf" et créé un nouveau fichier PDF appelé "fichier édité.pdf". Nous avons rempli les champs du formulaire avec des données et ajouté une nouvelle page au fichier PDF.
La classe PdfStamper
offre beaucoup plus d'options pour modifier les fichiers PDF existants, comme l'ajout d'images, la création d'annotations et la modification de la taille des pages.
IronPDF est une puissante bibliothèque PDF pour C# qui permet d'éditer des documents PDF. Dans ce tutoriel, nous verrons les étapes nécessaires pour éditer un fichier PDF existant à l'aide d'IronPDF. Nous aborderons différents aspects, notamment la création de nouveaux documents PDF, l'ajout de pages à un PDF existant, l'ajout de contenu à un PDF et le remplissage de champs de formulaire dans un PDF. Voici un exemple de code en C# pour illustrer les différentes étapes.
Avant de commencer, assurez-vous que les éléments suivants sont installés :
Créez un nouveau projet C# dans Visual Studio. Choisissez le type de projet "Application console".
Installez la bibliothèque IronPDF en l'intégrant à votre projet via le gestionnaire de paquets NuGet.
Install-Package IronPdf
Pour charger un document PDF existant, vous pouvez utiliser la classe PdfDocument
. L'exemple de code ci-dessous permet de charger un document PDF existant :
using IronPdf;
var existingPdf = @"C:\path\to\existing\pdf\document.pdf";
var pdfDoc = PdfDocument.FromFile(existingPdf);
using IronPdf;
var existingPdf = @"C:\path\to\existing\pdf\document.pdf";
var pdfDoc = PdfDocument.FromFile(existingPdf);
Imports IronPdf
Private existingPdf = "C:\path\to\existing\pdf\document.pdf"
Private pdfDoc = PdfDocument.FromFile(existingPdf)
Pour ajouter une nouvelle page à un document existant, vous pouvez utiliser la méthode AddPage
de la classe PdfDocument
. L'exemple ci-dessous permet d'ajouter une nouvelle page à des PDF existants :
var newPage = pdfDoc.AddPage();
newPage.Size = PageSize.Letter;
var newPage = pdfDoc.AddPage();
newPage.Size = PageSize.Letter;
Dim newPage = pdfDoc.AddPage()
newPage.Size = PageSize.Letter
En utilisant IronPDF, le code suivant peut générer un fichier PDF directement à partir de l'adresse d'une page web. En outre, des en-têtes et des pieds de page personnalisés sont fournis.
/**
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
iTextSharp est une bibliothèque open-source populaire qui permet aux développeurs de créer, manipuler et extraire des données de documents PDF en C#. Il s'agit d'une bibliothèque bien documentée et largement utilisée qui existe depuis longtemps. Cependant, IronPDF est une bibliothèque plus récente et plus moderne qui offre des fonctionnalités et des avantages supplémentaires, ce qui en fait un meilleur choix pour les développeurs.
L'un des domaines dans lesquels IronPDF surpasse iTextSharp est celui des capacités de sortie. IronPDF offre un support supérieur pour la conversion de HTML en PDF, permettant aux développeurs de convertir sans effort des pages HTML en documents PDF. Ceci est particulièrement utile pour générer des rapports ou des documents contenant des médias riches ou un contenu interactif. En outre, IronPDF permet un contrôle plus fin de la mise en page et du formatage, ce qui simplifie la création de documents PDF correspondant exactement à l'apparence souhaitée.
Le code suivant utilise IronPDF pour créer un PDF avec une entrée HTML.
/**
IronPDF HTML to PDF
anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
/**
IronPDF HTML to PDF
anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
'''
'''IronPDF HTML to PDF
'''anchor-ironpdf-document-from-html
'''*
Private Sub HTMLString()
' Render any HTML fragment or document to HTML
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
Renderer.RenderingOptions.TextFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
Dim OutputPath = "ChromePdfRenderer.pdf"
PDF.SaveAs(OutputPath)
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
End Sub
Le code suivant génère un PDF à partir d'un texte HTML utilisant iText7.
/**
iText HTML to PDF
anchor-itext-html-to-pdf
**/
private void HTMLString()
{
HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", new FileStream("ChromePdfRenderer.pdf", FileMode.Create));
}
/**
iText HTML to PDF
anchor-itext-html-to-pdf
**/
private void HTMLString()
{
HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", new FileStream("ChromePdfRenderer.pdf", FileMode.Create));
}
'''
'''iText HTML to PDF
'''anchor-itext-html-to-pdf
'''*
Private Sub HTMLString()
HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", New FileStream("ChromePdfRenderer.pdf", FileMode.Create))
End Sub
En termes de performances, IronPDF est également un vainqueur incontesté. Il est conçu pour être plus rapide et plus efficace que iTextSharp, permettant aux développeurs de générer des PDF plus rapidement et avec moins de ressources système. Ceci est particulièrement important lorsqu'il s'agit de documents PDF volumineux ou complexes, où les performances peuvent devenir un facteur important.
Un autre domaine dans lequel IronPDF a un avantage sur iTextSharp est celui de la tarification. Si iTextSharp est gratuit pour la plupart des utilisations, il nécessite une licence commerciale pour certains cas d'utilisation, et les licences commerciales peuvent être assez chères. En revanche, IronPDF propose un modèle de tarification plus abordable, avec une gamme d'options disponibles pour répondre à différents besoins et budgets.
L'une des principales différences entre iTextSharp et IronPDF est leur licence et leur prix.
iTextSharp est sous licence AGPL, qui permet une utilisation gratuite pour les projets open-source mais nécessite une licence commerciale pour une utilisation commerciale. La licence commerciale d'iTextSharp est disponible en plusieurs niveaux, avec une tarification basée sur les fonctionnalités et le niveau de support requis, ainsi que sur le nombre de développeurs et de serveurs de déploiement.
D'autre part, IronPDF est une bibliothèque commerciale qui offre aux développeurs une version d'essai gratuite qu'ils peuvent évaluer avant de l'acheter. IronPDF offre des options de licence flexibles, y compris des licences par développeur et par serveur, ainsi que des licences d'entreprise pour les grandes organisations. Le prix d'IronPDF est basé sur le nombre de développeurs et les fonctionnalités requises, avec des remises pour les licences pluriannuelles et les licences en volume.
Si iTextSharp est plus rentable pour les petits projets open-source, les options de licence flexibles et le support commercial d'IronPDF en font un choix plus viable pour les projets commerciaux et les grandes organisations.
En conclusion, bien que iTextSharp et IronPDF soient tous deux des bibliothèques capables de manipuler des PDF en C#, IronPDF s'impose comme un choix plus polyvalent et plus efficace. Avec ses fonctionnalités avancées, son API intuitive et sa documentation conviviale, IronPDF offre une expérience supérieure aux développeurs. Ses options de licence flexibles et son prix avantageux en font un outil plus adapté aux projets commerciaux et aux grandes organisations.
En outre, IronPDF se targue de meilleures performances techniques avec des temps de rendu plus rapides, une utilisation efficace de la mémoire et une gestion optimisée des documents PDF volumineux. Avec le logiciel Iron Softwareoptions tarifaires spéciales IronPDF sur les licences en achetant plusieurs produits et licences, les développeurs peuvent accéder à une suite complète d'outils et de bibliothèques puissants pour rationaliser leur processus de développement d'applications. Si vous avez besoin d'une bibliothèque PDF puissante et efficace pour vos projets C#, IronPDF est un bon choix.
9 produits de l'API .NET pour vos documents de bureau